第一个问题在这里。我是 Python 的初学者,对于我的最终项目,我正在 Django 中制作一个抓取应用程序。当我运行我的服务器时,我希望它启动一个BackgroundScheduler
每 10 分钟调用一次我的抓取应用程序的程序。现在我在按钮上有我的调度程序,但我不希望它在按钮上,我希望它在我运行服务器时正常工作,这可能吗?
我试过的:
ModuleNotFoundError:没有名为“finance_app.apps.FinanceAppConfig”的模块;'finance_app.apps' 不是一个包
apps.py 及其逻辑
from apscheduler.schedulers.background import BackgroundScheduler
from django.apps import AppConfig
from finance_app.scraper import scrape
class FinanceAppConfig(AppConfig):
name = 'finance_app'
def ready(self):
print('Initializing scheduler')
scheduler = BackgroundScheduler()
scheduler.add_job(scrape, 'interval', second=30)
scheduler.start()
有效的 BackgroundScheduler:
scheduler = BackgroundScheduler()
scheduler.add_job(scrape, 'interval', second=30)
scheduler.start()
我的视图中的调度程序调用了刮板
def scraper_view(request):
scrape()
scheduler = BackgroundScheduler()
scheduler.add_job(scrape, 'interval', minutes=10)
scheduler.start()
return redirect("../")
带有我想删除的视图的按钮
<div style="text-align: center;"><h2 class="subtitlu">
<a href="{% url 'scraper' %}">Scrape News</a>
</h2>
</div>
我终于想通了,我的刮板文件中有 django_setup() 这就是为什么它不起作用,也供将来参考,在 app.py 的 ready() 函数中,如果您有 AppConfig 以外的任何导入,请导入它们在你的 ready() 函数中,它应该可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句