在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类中。 优点是您可以定义自己的参数,并使用它们来定义令牌文件夹。(并避免将其作为参数复制,如使用pyrunnercli)。

为此,您需要将脚本包装在一个python类中。

创建文件的基本任务

frompyrunnerimportTaskclassTouchTask(Task):defcommand(self):return"touch"defexperiment_folder(self,args):return"."# return current folderif__name__=="__main__":TouchTask().run()

更复杂的例子在examples/目录中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java方法readAllBytes()对于InputStream类型是未定义的   Java:从一个目录,从internet上读取文本文件   java禁用javac中的StringBuilder优化   雅虎财经历史API csv似乎无法打开流?JAVA   java添加CriteriaBuilder。在(日期)和谓词之间?   java分解像php分解一样的行/字符串   java类型Marshaller中的方法Marshall(对象,结果)不适用于参数(T,File)   java如何使用cxfxjcplugin从多个xsd生成POJO?   java在orm中的JPA命名查询中。xml,如何将对象作为param传递并在JPQL中使用其属性   java创建另一个对象内部的对象   ibm集成总线如何通过java计算节点覆盖JMSReceive节点的MessageCorrelationIDSelector   java接口在内部接口中扩展,Jenkins中编译错误   原因:java。网UnknownHostException:调用web服务时ASHISH_PC   加密java。lang.SecurityException:JCE无法验证提供程序BC   java recycler如何查看数据绑定?   java Map仅使用Dozer从HashMap映射到HashMap的选定键