问题描述
我们有一个使用 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 (将#修改为@)