如何使用MySQL的DateTime在芹菜中执行任务



新闻存储在数据库mysql中,使用datetime的出版物。

任何时候用户可以在表中添加新的新的日期发布。

如何使用芹菜来清单图数据库表并检查是否是时候发布数据?

用于发布数据是负责的另一个过程(脚本Python)。因此,芹菜应根据datetime

如何使用芹菜?

我认为使用出版物的dateid创建队列,然后在此队列中直接添加来自用户表格的数据。因此,Sholud是过程(芹菜),该过程观察一个队列,以通过日期执行进一步执行任务。

芹菜为定期任务和计划任务提供文档,但是没有解释和示例如何使用。

对不起,如果问题是微不足道的,我是Python芹菜的新来者。

您可以使用apply_async()上的Paramater eta执行任务(请访问http://docs.celeryproject.org/en/latest/userguide/calling.html#eta-and-colta-anda-and-counta-

ETA参数必须采用DateTime格式,因此它将以精确的毫秒精度运行。

我建议您使用ORM,因此数据库中的DateTime数据类型将由ORM自动转换:D

假设我们有文章模型:

class Article(models.Model):
    title = models.CharField(max_length=100)
    published = models.BooleanField(default=False)
    created_date = models.DateTimeField()

,然后我们的任务模块:

@app.task(bind=True)
def set_published(*args, **kwargs):
    article = Article.objects.get(id=args[1])
    article.published = True
    article.save()
    print("article %d has been published" % args[1])

保存新文章并调用 set_published with eta 1 minute

article = Article(title='This is a new article', published=False, created_date=datetime.utcnow())
article.save()
delta = timedelta(minutes=1)
set_published.apply_async(args=(article.id,), eta=article.created_date + delta)

相关内容

  • 没有找到相关文章

最新更新