timertask run函数未执行_定时执行Abaqus作业任务

Abaqus分析计划任务的批处理执行,基于windows的批处理文件的实现和基于python脚本的实现,大家应该都很熟悉了,通过事先编译好的脚本文件来批处理计划任务,简单示例如下:

windows 批处理文件 (.bat)示例:

abaqus job=test1 cpus=4 intabaqus job=test2 cpus=4 int

python 批处理文件 (.py)示例:

jobs=['test1','test2',...] for job in jobs:    mdb.JobFromInputFile(name=job,inputFileName=job+'.inp',        numCpus=4,numDomains=4)    mdb.jobs[job].submit()    mdb.jobs[job].waitForCompletion()    

但是工作中也会有一种计划之外的状况,例如正在运行的时候有紧急新增的分析任务,预计当前分析在晚间可以结束,希望当前任务结束后可以定时执行新增分析任务,高效利用计算资源,此时就需要实现分析任务的定时执行。

如何设置定时任务的执行,基于windows批处理文件和python脚本的实现方式分别简述如下:

windows批处理文件 (.bat)联合计划任务定时执行示例:

先编译批处理文件 task.bat:

cd c:/tempabaqus job=test1 cpus=4 intabaqus job=test2 cpus=4 int

再创建计划任务jobs:可通过windows管理工具计划任务程序创建,也可在命令提示符(command)界面通过schtasks命令创建。

schtasks /create /SC ONCE /TN jobs /TR c:\temp\task.bat /ST 14:35

0aaa1a5d39408414ab92a1c5887219c3.png

如上图所示,我们通过schtasks(管理计划任务)命令创建了一个名为jobs仅执行一次的计划任务,在指定时间14:35会定时执行 C:/temp/task.bat的任务。

python 的计划任务执行文件 (.py)示例:

也可用python自带库中sched来实现分析任务的定时执行:

编译好的批处理脚本(task.py)如下:

from abaqus import *from abaqusConstants import *def timedtask():    jobs=['test1','test2']    for job in jobs:        mdb.JobFromInputFile(name=job,inputFileName=job+'.inp',            numCpus=4,numDomains=4,numGPUs=0)        mdb.jobs[job].submit()        mdb.jobs[job].waitForCompletion()

增加定时任务执行脚本(timertask.py)如下:

import timeimport schedfrom task import timedtaskschedule = sched.scheduler ( time.time, time.sleep )#第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。schedule.enter(300,0,timedtask,())#加入调度事件schedule.run()#运行

如上实现了一个时间调度程序,指定任务task.py将在300秒后运行;

通过scheduler.enter(delay,priority,func,args)函数将任务加入到任务队列里,当指定的时间到了,就会执行任务(func函数)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值