微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django 和 APScheduler 未在 IIS 服务器上运行

如何解决Django 和 APScheduler 未在 IIS 服务器上运行

我们有一个使用 IIS 服务器部署的 django 应用程序。该应用程序一直运行顺利,没有任何问题。但是,我们希望安排一个将在每晚 02:00 运行的作业。 我们正在使用 APScheduler,它在 Django 本地服务器上运行良好,但从未在生产环境中运行。 这是我用来运行作业的代码

myapp/scheduler.py

def schedule():
    scheduler = BackgroundScheduler()
    scheduler.add_job(daily_schedules,'interval',minutes=5)
    # scheduler.add_job(daily_schedules,trigger='cron',hour='2')
    scheduler.start()


def daily_schedules():
    time_Now = time.clock()
    parse_api() # my function
    # Keeping logs
    path = join(settings.FILES_DIR,'schedulled/logs.csv')
    logs = pd.read_csv(path,encoding='utf-8')
    time_end = time.clock() - time_Now
    logs.loc[len(logs)] = [
        datetime.Now().strftime('%Y-%m-%d %H:%M:%s'),time_end
        ]
    logs.to_csv(path,encoding='utf-8',index=False)
    print(logs)

myapp/apps.py

from django.apps import AppConfig

class MyAppConfig(AppConfig):
    name = 'MyApp'

    def ready(self):
        from myapp import scheduler
        scheduler.schedule()

作业没有运行有什么特别的原因吗?我是否需要做其他事情或此方法不适用于 IIS?由于服务器同时被许多开发人员使用,我想将作业作为 django 应用程序的一部分运行,而不是在单独的服务器中运行它们。

P.S:我已经阅读了关于这个问题的所有 stackoverflow 问题,但似乎没有人回答我的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。