此代码是托管在pythonanywhere(Linux)的蟒蛇3.5。Pythonanywhere计划作业有时活着不释放羊群
我使用with open
管理无阻塞的羊群,但有时计划过程运行到这会导致作业终止的异常;这是确定的,但我的困惑,锁有时没有释放,以及所有后续尝试均失败来进行,因为他们被锁定。
在这种情况下我也看到了活着好几个小时的过程(“提取工艺”在计划任务选项卡)想必这是保持鸡群的过程。这些工作通常需要几分钟的时间。手动杀死它可以解决问题。我不明白这是怎么回事。应该触发超时异常的东西有时似乎挂起(代码使用API调用其中一些并发)。
它是间歇性的...每月一次或两次。 我可以要求pythonanywhere是在杀死长期任务更积极?主管是一个解决方案吗?
这是代码的顶部:
with open('neto_update_lock.lock', 'w+') as lock_file:
try:
fcntl.flock(lock_file, fcntl.LOCK_EX|fcntl.LOCK_NB)
except BlockingIOError:
print ("Can't get a lock. Sorry, stopping now")
raise