RHH*_*RHH 10 python linux windows django cron
我感兴趣的是定期按时间间隔运行某些操作.显然,这是cron的任务,对吧?
不幸的是,互联网似乎在那里存在一些分歧.
让我详细说明一下我的设置.首先,我的开发环境是在Windows中,而我的生产环境是在Webfaction(Linux)上托管的.Windows上没有真正的cron,对吧?另外,我使用Django!还有什么建议Django?
芹菜当然!不幸的是,设置Celery对我来说或多或少是一个字面上的噩梦 - 请参阅错误信息'使用Celery可以找到记录器"多处理"的处理程序.这只是我和Celery一起遇到的问题之一.其他包括套接字错误,我是唯一一个遇到问题的人.
别误会我的意思,芹菜似乎真的很酷.不幸的是,似乎缺乏支持,并且在其首选后端RabbitMQ中内置了一些奇怪的限制.不幸的是,无论程序有多酷,如果它不起作用,那么它不起作用!
这就是我希望你们所有人都能进来的地方.我想了解cron或者cron-equivalent,它们可以在Windows和Linux环境中以类似方式(最好是相同的)进行设置.
(我现在已经和Celery挣扎了大约两个星期,不幸的是我认为现在是时候抛弃它并放弃它,至少目前是这样.)
mrm*_*oey 17
我有同样的问题,并试图用芹菜(太复杂)或cron(应用程序外部)解决它,最终找到高级Python调度程序.只是刚刚开始使用它,但它似乎相当成熟和稳定,具有良好的文档,并将采取多种调度格式(例如cron风格).
从文档中,以特定间隔运行函数.
from apscheduler.scheduler import Scheduler
sched = Scheduler()
sched.start()
def hello_world():
print "hello world"
sched.add_interval_job(hello_world,seconds=10)
Run Code Online (Sandbox Code Playgroud)
这是非阻塞的,我只需从我的模块导入模块就可以运行相同的东西urls.py.希望这可以帮助.
Bri*_*eal 12
一种简单的非Celery方法可以创建Django自定义管理命令来执行异步或计划任务.
然后,在Windows上,您可以使用该at命令来安排这些任务.在Linux上,您使用cron.
如果可以用于开发环境,我也强烈建议放弃Windows.在Linux甚至Mac OSX上你的生活会好得多.例如,使用Ubuntu重新使用备用或旧机器,或者在Windows机器上的VM中运行Ubuntu.
| 归档时间: |
|
| 查看次数: |
6510 次 |
| 最近记录: |