在做活动项目时需要对时间的限制 就写模仿 crontab 写了一个
# utf-8
# '* * * * *' -> 分 时 日 月 周
# '* * * 1-3 *' -> 分 时 日 月 周
# '* * * 1,2,3 *' -> 分 时 日 月 周
# 01-59 01-23, 01-31, 01-12, 0-6
# simple : CrontabUtil.new("20 09 * 04 2").check_time?
# simple : CrontabUtil.new("20,21,40 * 29 04 2").check_time?
# simple : CrontabUtil.new("20-40 09 29 04 2").check_time?
# return : boolean
class CrontabUtil
attr_accessor :date, :minute, :hour, :day, :month, :week
def initialize(cron_str, date=nil)
return nil if cron_str.blank?
init_data(cron_str)
@date = date || Time.now
end
def check_time?
check_minute? && check_hour? && check_day? && check_month? && check_week?
end
def check_minute?
relatively(@date.strftime("%M"), @minute)
end
def check_hour?
relatively(@date.strftime("%H"), @hour)
end
def check_day?
relatively(@date.strftime("%d"), @day)
end
def check_month?
relatively(@date.strftime("%m"), @month)
end
def check_week?
relatively(@date.strftime("%w"), @week)
end
private
def init_data(cron_str)
cron_arr = cron_str.to_s.split(' ')
return if cron_arr.size < 5
@minute = cron_arr[0]
@hour = cron_arr[1]
@day = cron_arr[2]
@month = cron_arr[3]
@week = cron_arr[4]
end
def relatively(num,arr_str)
return true if arr_str == '*'
# 1. ','
if arr_str.index ','
return arr_str.split(',').include? num
end
# 2. '-'
if arr_str.index('-')
return (arr_str.split('-')[0]..arr_str.split('-')[1]).include? num
end
# 0. Integer
if is_integer?(arr_str)
return arr_str == num
end
return true
end
def is_integer?(str)
begin
return str.to_i.is_a? Integer
rescue Exception => e
return false
end
false
end
end
分享到:
相关推荐
Crontab 是一种在 Linux 系统中广泛使用的定时任务管理机制,用于按照预设的时间表执行命令或脚本。这个易语言 Crontab 定时任务执行模块 v1.2 则是将这种功能移植到了易语言环境中,让开发者能够方便地在易语言程序...
在Linux系统中,`crontab`是一个非常实用的工具,用于设置周期性被执行的任务,常用于自动化运维工作。然而,在使用`crontab`定时执行Shell脚本时,可能会遇到一些问题,特别是在执行包含特定命令(如Java应用)的...
在嵌入式Linux开发中,经常需要进行定时任务的管理,传统的解决方案是利用Linux的原生`crontab`工具。然而,在某些情况下,如在资源有限的嵌入式设备上,可能需要更轻量级的替代方案。"Go开发的crontab 代替linux...
### Linux中使用Crontab定时监测维护Tomcat应用程序的方法 #### 概述 在现代IT运维工作中,确保关键业务系统的高可用性和稳定性至关重要。本文档详细介绍了一种利用Linux下的Crontab工具来定时监测并维护运行在...
Crontab是Linux系统中的任务调度工具,能帮助我们自动化执行包括数据库备份在内的各种任务。本教程将详细阐述如何利用Crontab来实现Oracle数据库的定时备份。 首先,我们需要理解Oracle数据库的备份类型。Oracle...
1. **打开crontab编辑器**:使用`crontab -e`命令打开定时任务配置文件。 2. **添加定时任务**:在编辑器中,你可以根据需要设置备份的时间,例如每天凌晨1点执行备份: ``` 0 1 * * * /bin/bash /path/to/mysql...
首先以守护进程方式开启push.php:php push.php -d,然后再data.php中写出你的逻辑,放在推送数据$data['data']里,crontab定时任务跑data.php。 注:push.php开启后,页面端websocket中ws的链接与端口要与服务器地址...
总结来说,"仿制Linux中定时任务Crontab v1.0-易语言"是一个易语言环境下的定时任务管理模块,它复制了Linux Crontab的语法,允许用户以类似的方式设置秒级的定时任务。通过提供的源码,用户可以学习、定制和优化这...
- **删除定时任务**:使用`python manage.py crontab remove`命令可以删除所有的crontab定时任务。如果你想删除特定任务,你需要先了解该任务的ID,然后使用`python manage.py crontab remove <ID>`。 - **运行任务...
编辑`crontab -e`命令打开定时任务编辑器,然后根据需要设置备份频率,例如每天凌晨1点执行备份: ```bash 0 1 * * * /path/to/your/backup_script.sh ``` `backup_script.sh`是包含上述expdp命令的脚本,别忘了...
在终端中,使用`crontab -e`命令编辑定时任务文件。 - 添加一条定时任务,例如每小时执行一次Java程序: ``` 0 * * * * java -jar /path/to/your/app.jar ``` 这里的`/path/to/your/app.jar`应替换为实际的Java...
### Linux下定时启动CDC预定脚本 #### 概述 在Linux环境中,为了实时或定期地监控数据库变更数据(Change Data Capture,简称CDC),我们常常需要编写自动化脚本来实现这一功能。本文将详细介绍如何在Linux环境下...
在Linux终端中,使用`crontab -e`命令编辑Crontab配置。根据你的需求,设置定时执行的时间规则。例如,如果你希望每天凌晨1点执行一次任务,可以添加以下行: ``` 0 1 * * * ...
在Linux系统中,Crontab 是一种强大的定时任务调度工具,通常用于按设定的时间间隔执行特定的任务。然而,Crontab 默认的精度只到分钟,无法实现秒级定时任务。要实现在Linux中进行秒级定时任务,我们需要通过编写...
4. **定时任务配置**:若希望定时执行备份,可以在`/etc/crontab`文件中添加相应的定时任务。例如,以下命令表示每天凌晨3点执行备份脚本: ``` 0 3 * * * root /usr/sbin/DataBackup ``` #### 四、注意事项 - *...
Crontab是Linux系统中用于调度周期性任务的命令,它可以按照设定的时间间隔运行指定的脚本或程序。Crontab配置文件包含一系列规则,每条规则定义了一个任务的执行时间及要执行的命令。 三、配置ThinkPHP 5.1的...
在Linux系统管理中,定期执行任务是不可或缺的一部分,而`crontab`工具就是实现这一功能的核心组件。它允许用户设定定时任务,按照预设的时间间隔执行特定的命令或者脚本。在标题和描述中提到的场景,我们将讨论如何...
然后,通过`crontab -e`编辑crontab配置,添加定时任务。例如,如果希望每天凌晨0点执行备份,可以在crontab文件中添加一行`0 0 * * * /bin/bash /path/to/oracle_backup.sh`,这样就能确保脚本按计划执行。 总结来...
### Linux下MySQL定时备份知识点详解 #### 一、概述 在Linux环境中,为了确保数据的安全性和可用性,定期对MySQL数据库进行备份是非常重要的。本文将详细介绍如何在Linux系统下设置MySQL数据库的定时备份,包括...
最后,`crontab_test工程.rar`可能是一个包含Java项目源代码的压缩文件,解压后可以查看源代码,理解程序逻辑,也可以用于重新构建或调试`jar`文件。 总结,使用Linux `cron`定时执行`.jar`程序涉及以下步骤: 1. ...