python 3.6+库,用于交互提交给aws批处理。

reticle的Python项目详细描述


十字线

Testing StatuscodecovDocumentation Build StatusPyPi ReleasePython VersionsMyPy CheckedCode style: black

python 3.6+库,用于交互提交给aws批处理。

❯ pip install reticle

功能:

  • 提交批处理作业

阅读文档:reticle.readthedocs.io

端到端示例

将作业部署到aws批处理的主要对象是批处理作业定义。 每个批处理作业定义都有名称、参数和某种形式的可选参数验证。

fromreticle.aws.batchimportJobDefinitionfromreticle.aws.s3importS3UriclassDemoJobDefinition(JobDefinition):"""A Batch job definition for demonstrating our API.    Args:        input_object: The S3 URI to the input object.    """def__init__(self,input_object:S3Uri):self.input_object=input_object@propertydefname(self)->str:"""Return the job definition name."""return'demo-job'defvalidate(self)->None:"""Validate this parameterized job definition."""ifnotself.input_object.object_exists():raisef'S3 object does not exist: {self.input_object}'

现在,我们可以将参数化作业定义包装到批处理作业中,并设置特定的修订。

fromreticle.aws.batchimportBatchJobdefinition=DemoJobDefinition(input_object='s3://bucket/object')definition.at_revision('6')job=BatchJob(definition)

提交此批处理作业很容易,并且可以立即执行自省:

response=job.submit(queue='prod')

当作业处于RUNNING状态时,我们可以访问作业的cloudwatch日志:

forlog_eventinjob.log_stream_events():print(log_event)"""LogEvent(timestamp="1543809952329", message="You have started up this demo job", ingestion_time="1543809957080")LogEvent(timestamp="1543809955437", message="Configuration, we are loading from...", ingestion_time="1543809957080")LogEvent(timestamp="1543809955437", message="Defaulting to approximate values", ingestion_time="1543809957080")LogEvent(timestamp="1543809955437", message="Setting up logger, nothing to see here", ingestion_time="1543809957080")"""

如果必须,我们可以取消工作,只要我们提供理由:

job.terminate(reason='I was just testing!')

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

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List