【问题标题】:apscheduler interval task is not running on awsapscheduler 间隔任务未在 aws 上运行
【发布时间】:2016-09-04 17:02:54
【问题描述】:

我想每隔几分钟就解雇一次我的工作。它正在我的本地机器上运行。但是,在 AWS Elastic Beanstalk 上,该作业永远不会触发。我使用 python 3.4、apscheduler 3.1.0 和 Flask 0.10.1。

例如:

from apscheduler.schedulers.background import BackgroundScheduler

def my_job()
    print('Hello')


scheduler = BackgroundScheduler()
scheduler.add_job(my_job, 'interval', seconds=120, id='my_job')
scheduler.start()

任何想法为什么它不能在 AWS 上运行?

【问题讨论】:

  • 你怎么知道它不起作用? print 输出到 Beanstalk 的日志之一还是 logging 会更好?
  • 日志中没有任何内容,也只是一个例子。我的任务很少,所有任务都应该将状态插入数据库。问题在于默认情况下不支持线程的 uWSGI(我仍然很惊讶为什么它没有在 apscheduler 网页上提及)。可以找到一种方法在 AWS 上打开它们,所以我只是使用 cron 来完成。

标签: python python-3.x amazon-web-services amazon-elastic-beanstalk apscheduler


【解决方案1】:

你可以这样使用。

@application.before_first_request
def initialize():
    scheduler = BackgroundScheduler()
    scheduler.add_job(my_job, 'interval', seconds=120, id='my_job')
    scheduler.start()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2021-07-07
    • 2021-04-15
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多