【发布时间】:2017-03-17 23:36:38
【问题描述】:
此代码是托管在 pythonanywhere (linux) 上的 python 3.5。
我正在使用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
【问题讨论】:
标签: python pythonanywhere