【发布时间】:2015-01-14 00:11:37
【问题描述】:
我正在编写一个 Django 应用程序,它使用管理命令从各种来源提取数据。计划是使用 cron 每小时运行一次此命令,并让它在视图中的用户命令上运行(即,当他们添加需要数据的新项目时,我不希望他们等待下一个小时滚动到见结果)。问题是:
我怎样才能设置这个命令,如果它已经在运行,它就不会执行?是否有一些地方可以存储一个可以在执行前由脚本检查的变量?我目前最好的想法是让命令监控 stdout 一段时间,以确保没有其他内容正在执行,但这似乎充其量只是一个 hack。这是唯一将在后台运行的任务。
我基本上是尽量避免在这里使用 Celery。
【问题讨论】:
-
不要为芹菜出汗。它易于设置且易于运行。如果 RabbitMQ 让您头疼,我将 Redis 用作 MQ,并且问题很少。