python - 如何在我的 django amazon 产品跟踪项目中安排任务?
问题描述
我正在使用Django开发一个网络应用程序项目。它是亚马逊产品价格跟踪器。我希望应用程序自动抓取产品表中的产品,以检查产品的价格是否降低了。我想在应用程序完成后部署它,所以它也应该在那里工作。
我在网上寻找答案,但似乎cronjobs和celery不适用于 Windows,所以还有其他方法可以实现我的目标。
我创建了一个需要每天执行一次的函数。
这是我想每 24 小时执行一次的功能。
def track():
products = Product.objects.all()
for product in products:
new_data = getproduct(product.link)
update_data(product, new_data)
我已经尝试了计划库:
import schedule
import time
from .models import Product
from .utils import getproduct
schedule.every().day.at("12:00").do(track)
- 这里 getproduct 是抓取产品数据的方法,product 是模型
解决方案
在您的场景中,芹菜是最好的选择,是的,您也可以在 Windows 上运行芹菜。安装 rabbit mq 和 celery < 4 就可以了。但是,如果您不想使用 celery,则可以使用另一个选项dajngo-background-tasks。
推荐阅读
- mysql - 在存储过程中使用参数获取动态表名
- reporting-services - TFS 报告:查询具有特定迭代路径的项目检索已移动到另一个迭代的项目
- android - 从 SharedPreferences 中删除一个 ArrayList
- algorithm - 对于“小型”数据集,插入排序是一个不错的选择。什么是“小”?
- css - 多行文本使 svg 缩小
- ruby-on-rails - 种子文件中的 Rails 图像
- csv - ArangoDB 示例图数据丢失 flight.csv
- javascript - 除非我在调试,否则 ChartJS 不会读取数据
- java - 如何更改 JFoenix 拾色器库的 CSS 样式?
- php - 无法反序列化字符串