在cli中包装脚本。
pyrunner的Python项目详细描述
pyrunner
一个简单的python任务运行器。将其用作cli,或使用 python接口。
功能
- 防止任务同时运行两次。
- 阻止任务在完成后再次启动。
它通过在 指定的任务目录。一个目录=一个任务。
示例用例
碰撞恢复
假设您为所有子目录启动了多个任务:ls | xargs -I % command %
,
命令在中间坠毁。现在,如何只运行未完成的任务?
您可以使用pyrunner运行任务,然后第二次运行将仅开始 未完成的任务。
平行
它也可以用作穷人的平行图书馆。
您可以在两个shell中运行ls | xargs -P 2 -I % command %
,而不是ls | xargs -I % pyrunner %/.tokens command %
。
每个shell都将接收挂起的任务。
安装
pip install pyrunner
cli用法
您可以将其用作cli,如下所示:
pyrunner <tokens-folder> <command>
例如
pyrunner .tokens/ touch file.txt
将创建名为file.txt的文件。
另一个例子:
pyrunner .tokens/ bash -c "date > date.txt"
此命令将当前日期保存在文件date.txt
中。
如果你再跑一次,它就跑不动了。
python用法
您还可以将脚本包装到python类中。
优点是您可以定义自己的参数,并使用它们来定义令牌文件夹。(并避免将其作为参数复制,如使用pyrunner
cli)。
为此,您需要将脚本包装在一个python类中。
创建文件的基本任务
frompyrunnerimportTaskclassTouchTask(Task):defcommand(self):return"touch"defexperiment_folder(self,args):return"."# return current folderif__name__=="__main__":TouchTask().run()
更复杂的例子在examples/目录中。