span8
span4
您可以运行该脚本,并让它从一些datetimecculculations开始。
然后创建要测试的属性。
就像
“正月初一”
[时钟格式][时钟扫描“今天”]-格式%d]==1
然后是测试人员对"每月的第一天"进行测试
时钟格式[时钟扫描"今天"]-格式%d] -1]==1将是上月底。
“季开始”
(@fmod([expr [clock format [clock scan "today"] -format %m]-1],3)==0)&&([clock format [clock scan "today"] -format %e]==1)
再次测试属性值。
例如,我运行这个;“季度第一个星期日”
(@fmod([expr [clock format [clock scan "today"] -format %m]-1],3)==0)&&([clock format [clock scan "today"] -format %w]==0)&&
[时钟扫描"今天"]- 604800]-格式%m]!=[时钟格式[时钟扫描"今天"]-格式%m])
工作台运行,如果“季度的第一个星期天”为真,它将执行工作台或退出。
(这些是tcl,当然,如果你坚持的话,你可以使用snake)
我认为相当优雅。
嗨@witos
您使用的是什么版本的FME服务器?
因为月间隔周期使用平均月时间,所以不能保证它总是在月的最后一天。粗略计算一下,我发现平均每个月有30.3天,所以如果你从1月31日开始运行,那么下一次运行的时间可能是3月1日或2日。
我做了一个快速浏览一下网上,似乎大多数的cron解决方案,它是一个更容易建立一个cron表达式在每月1日运行 - 我不知道这是否是你可以接受吗?
一个不太雅致的解决办法是将一些逻辑到工作区(可能是蟒蛇,如果日期时间函数允许的话),看的时候月份的下一个最后一天,并使用FME Server的REST API更新日程安排,以便它会 run on the last day of the month.
©2019安全亚搏在线软件公司法律