如果成功,perl class JobLog(db.Document):
@classmethod
def pre_delete(cls, sender, document, **kwargs):
(pre delete operations)
from mongoengine import signals
signals.pre_delete.connect(JobLog.pre_delete, sender=JobLog)
模块中的每个函数应该返回1,如果失败,则返回0。
就我而言,我注意到(使用我拥有的所有日志)File::Copy
即使操作成功(由于文件实际上已移动)也返回0,其值为$!为move
。
以前有没有人注意到这样的问题?
答案 0 :(得分:2)
从File::Copy到copy
如果设置权限时发生错误,则
cp
将返回0,无论文件是否被成功复制。
虽然这是针对copy
的,但move
也可以复制文件然后删除(如果无法重命名)。
还有其他可能性,涉及其他进程干扰文件。
答案 1 :(得分:2)
如果move返回0,则尝试重命名文件失败,然后尝试复制失败,或者尝试在复制失败后取消链接原始文件。我看不到其他可能性,至少在File :: Copy 2.33版本中。
如果您需要更好的错误报告,则可能只想重命名,如果需要,可以复制并自行取消链接。
您正在使用哪个版本的File :: Copy?什么版本的perl?什么操作系统。