满足特定条件时自动运行功能。没有用户交互。

时间:2014-01-10 12:55:09

标签: python

我正在使用Flask 我目前正在使用fabfile检查哪些用户应该收到帐单,我设置了一个cron作业,每天凌晨5点运行fabfile。这会自动在Stripe和我的数据库中创建账单,并向用户发送电子邮件以通知他们。这可以用于生日提醒或其他类似的事情。

设置cronjob是做这种事情的标准方法吗?有更好的方法/标准吗?

我会将“这种事情”定义为。在没有用户与所述应用程序交互的情况下满足某些条件时,需要在应用程序中自动发生的任何事情。

当我用Google搜索时,我找不到多少。

2 个答案:

答案 0 :(得分:0)

我认为 你必须问自己的是:

  • cron工作是否是向客户收费的最可靠方式?

我写过使用内部计时器的小/简单应用程序。例如:https://bitbucket.org/prologic/irclogger每天使用一次irc日志文件。这更好还是更可靠?并不是的;如果守护进程/僵尸程序过早死亡或系统崩溃;那会发生什么?在这种情况下,它会再次启动,并且日志会在下一个“日”间隔继续进行漫游。

我认为这里有两件事很重要:

  • 可靠性
  • 鲁棒性

答案 1 :(得分:0)

使用cron实际上是最简单的方法。但是,还有其他类型的服务可以定期触发任务并提供一些额外的控制。例如,Celery's scheduler。似乎有一个关于building periodic tasks with celery here的教程。