gpt4 book ai didi

Pythonanywhere 计划的作业有时会保持事件状态并且不会释放 flock

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:29 29 4
gpt4 key购买 nike

此代码是在 pythonanywhere (linux) 上托管的 python 3.5。

我正在使用 with open 来管理一个非阻塞的 flock,但有时调度的进程会遇到异常,导致作业终止;没关系,但令我困惑的是,锁有时没有释放,所有后续尝试都无法继续,因为它们被锁定了。

在这些情况下,我还看到一个进程存活了好几个小时(计划任务选项卡中的“获取进程”),大概这是保持集群的进程。这些作业通常需要几分钟。手动杀死它可以解决问题。我不明白这是怎么回事。有时应该触发超时异常的东西似乎挂起(代码使用 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

最佳答案

我注意到有些情况下外部请求会永远挂起。我建议您尝试找出它是否是特定请求/请求类型,看看您是否可以添加一些代码以在一段时间后放弃它们。

关于Pythonanywhere 计划的作业有时会保持事件状态并且不会释放 flock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42868668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com