关于django_apscheduler的几点疑惑
django吧
全部回复
仅看楼主
level 3
微雨谯楼 楼主
由于需求原因,所以使用了django+docker(不能开WSL2)+uwsgi+nginx,比较小白,所以有些东西描述不清楚,请各位大佬谅解。
最早的时候,部署到winserver2019中的docker里。发现无法使用定时任务,百度后发现需要部署uwsgi并且将定时任务添加到wsgi里面,因为我有两个定时任务,然后就出现不时会产生某一个定时任务会重复执行的问题,又百度了很久,找到一个文件锁的方式。如下:
def initscheduler(scheduler):
f = open("scheduler.lock", "wb")
try:
fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB)
register_events(scheduler)
scheduler.start()
except:
pass
def unlock():
fcntl.flock(f, fcntl.LOCK_UN)
f.close()
atexit.register(unlock)
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
@register_job(scheduler,'cron',id="dad",hour=10,minute=30,second=00)
def test_job():
print("1")
initscheduler(scheduler)
scheduler2 = BackgroundScheduler()
scheduler2.add_jobstore(DjangoJobStore(), "default")
@register_job(scheduler2,'cron',id="dad",hour=23,minute=30,second=00)
def test2_job():
print("1")
initscheduler(scheduler2)
但是按照这个实现了以后,发现定时任务只能执行一个(在数据库django_apscheduler_djangojob里只有第一个定时任务),第二个出不来,现在求贴吧大佬们能否教我一下,这个要怎么写才能让两个任务都能运行
2022年01月12日 08点01分 1
level 3
微雨谯楼 楼主
或者换种别的方式,我就是想要多定时任务
2022年01月12日 09点01分 2
level 3
微雨谯楼 楼主

2022年01月12日 10点01分 3
level 3
微雨谯楼 楼主

2022年01月12日 10点01分 4
level 3
微雨谯楼 楼主

2022年01月12日 23点01分 5
level 3
微雨谯楼 楼主
顶完上班了
2022年01月12日 23点01分 6
level 3
微雨谯楼 楼主

2022年01月13日 08点01分 7
level 3
微雨谯楼 楼主

2022年01月13日 21点01分 8
level 3
微雨谯楼 楼主

2022年01月14日 03点01分 9
level 3
微雨谯楼 楼主
自顶
2022年01月17日 02点01分 10
level 3
微雨谯楼 楼主

2022年01月18日 00点01分 11
level 3
微雨谯楼 楼主

2022年01月18日 13点01分 12
level 4
定时任务重复执行那好像能设置成只执行一次,看下定时框架吧!我记不太清了
2022年01月20日 09点01分 13
好的👌🏻
2022年01月20日 15点01分
1