读取配置文件执行定时任务|在linux下怎么让一个脚本定时运行

|

1. CELERY 定时任务

Celery是一个强大的分布式任务队列,他可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。通常用来实现异步任务和定时任务。异步任务比如发送邮件,文件上传图像处理等;定时任务就是需要在特定时间执行的任务。 a. 创建Celery实例 b. 启动Celery Worker,通过delay()或者apply_async()将任务发布到broker c. 应用程序调用异步任务 d. 存储结果 Celery Beat: 任务调度器,Beat进程会读取配置文件的内容,周期性的将配置中到期需要执行的任务发送给任务队列 a. 创建Celery实例 b. 配置文件中配置任务,发送任务 celery -A xxx beat c. 启动Celery Worker celery -A xxx worker -l info -P eventlet d. 存储结果 如果大写的话,需要写成: 在celery_task同级目录下,执行命令: celery -A celery_task beat 在celery_task同级目录下,执行命令: celery -A celery_task worker -l info -P eventlet 可以看到输出: 如果同时在<b>两个虚拟环境(服务器)</b>中都执行定时任务,都可以看到有以上LOG打印。 发布任务 celery -A celery_task beat 执行任务 celery -A celery_task worker -l info -P eventlet 将以上两条合并 celery -B -A celery_task worker 后台启动celery worker进程 celery multi start work_1 -A appcelery 停止worker进程,如果无法停止,加上-A celery multi stop WORKNAME 重启worker进程 celery multi restart WORKNAME 查看进程数 celery status -A celery_task

2. linux crontab怎么定时执行任务

linux下定时执行任务的方法 【非原创,个人网上收集整理了一下】在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。一、cron在3个地方查找配置文件:1、/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。二、/etc/crontab 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# .—————- minute (0 – 59)# | .————- hour (0 – 23)# | | .———- day of month (1 – 31)# | | | .——- month (1 – 12) OR jan,feb,mar,apr …# | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR#sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * command to be executed三、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。四、权限crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在用法如下:1、如果两个文件都不存在,则只有root用户才能使用crontab命令。2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。AIX 中 普通用户默认都有 crontab 权限,如果要限制用户使用 crontab ,就需要编辑/var/adm/cron/cron.denyHP-UNIX 中默认普通用户没得crontab 权限 ,要想放开普通用户的crontab 权限可以编五、创建cron脚本第一步:写cron脚本文件,命名为crontest.cron。15,30,45,59 * * * * echo "xgmtest….." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令第二步:添加定时任务。执行命令 “crontab crontest.cron”。搞定第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本六、cron服务cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置/sbin/service crond status //查看服务状态crontab用法crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。格式如下:minute hour day-of-month month-of-year day-of-week commands合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。-l 在标准输出上显示当前的crontab。-r 删除当前的crontab文件。-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。几个例子:每天早上6点0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。每两个小时0 */2 * * * echo "Have a break now." >> /tmp/test.txt晚上11点到早上8点之间每两个小时和早上八点0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4 * 1-3 command line1月1日早上4点0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/每小时执行/etc/cron.hourly内的脚本01 * * * * root run-parts /etc/cron.hourly每天执行/etc/cron.daily内的脚本02 4 * * * root run-parts /etc/cron.daily每星期执行/etc/cron.weekly内的脚本22 4 * * 0 root run-parts /etc/cron.weekly每月去执行/etc/cron.monthly内的脚本42 4 1 * * root run-parts /etc/cron.monthly注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。5,15,25,35,45,55 16,17,18 * * * command每周一,三,五的下午3:00系统进入维护状态,重新启动系统。00 15 * * 1,3,5 shutdown -r +5每小时的10分,40分执行用户目录下的innd/bbslin这个指令:10,40 * * * * innd/bbslink每小时的1分执行用户目录下的bin/account这个指令:1 * * * * bin/account每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txtat命令实现定时任务假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。at命令执行流程如下# at 2:05 tomorrowat>/home/kyle/do_jobat> Ctrl+DAT Time中的时间表示方法———————————————————————–时 间 例子 说明———————————————————————–Minute at now + 5 minutes 任务在5分钟后运行Hour at now + 1 hour 任务在1小时后运行Days at now + 3 days 任务在3天后运行Weeks at now + 2 weeks 任务在两周后运行Fixed at midnight 任务在午夜运行Fixed at 10:30pm 任务在晚上10点30分注意:linux默认为不启动,而ubuntu默认为启动的。检查是否启动,用service atd检查语法,用service atd status检查atd的状态,用service atd start启动atd服务。查看at执行的具体内容:一般位于/var/spool/at目录下面, 用vi打开,在最后一部分就是你的执行程序参数详解-V : 印出版本编号-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c… z 以及 A, B, … Z 共 52 个-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入网络应用-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)-v : 列出所有已经完成但尚未删除的指定删除任务atrm 2三天后的下午 5 点锺执行 /bin/ls :at 5pm 3 days /bin/ls三个星期后的下午 5 点锺执行 /bin/ls :at 5pm 2 weeks /bin/ls明天的 17:20 执行 /bin/date :at 17:20 tomorrow /bin/date1999 年的最后一天的最后一分钟印出 the end of world !at 23:59 12/31/1999 echo the end of world !顶2踩0

3. Linux设置定时任务

《使用PSSH批量管理Linux》 一文中,已经学习了使用pssh批量管理linux的技巧。而很多时候,我们需要定时执行一些任务,或者需要定时执行一些批量任务。因此,本文就来研究一下linux设置定时任务的方法。 主要参考 Linux Crontab 定时任务 、 Linux定时任务Crontab命令详解 和 Linux 定时任务详解 。 cron(crond)是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。linux系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。另外,由于使用者自己也可以设置计划任务,所以,linux系统也提供了使用者控制计划任务的命令:crontab命令。 crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。 linux下的任务调度分为两类,系统任务调度和用户任务调度。 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。 /etc/crontab 文件就是系统任务调度的配置文件。 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在 /var/spool/cron/crontabs/ 目录中,其文件名与用户名一致。 假设我们使用的是Ubuntu14.04.5 Server版,查看 /etc/crontab ,内容为: 第一行SHELL变量指定了系统要使用哪个shell;第二行PATH变量指定了系统执行 命令的路径。 接下来的命令格式为: m h dom mon dow user command 英文全拼为: minute hour day month week user commond 注意, /var/spool/cron 目录中的用户调度任务,没有user一项,因为文件名已经代表了user。 在以上各个字段中,还可以使用以下特殊字符: crontab命令格式为: crontab [-u username] [file] [ -e | -l | -r ] 设置定时任务和时间紧密相关,如果服务器的时区时间设置和本地不同,就不能保证计划任务的正确执行。所以使用crontab的第一步,是调节好服务器的时间。 下面参考 Ubuntu 16.04将系统时间写入到硬件时间BIOS ,对服务器时间进行调节。 时间是有时区的,无论硬件时间还是操作系统时间。hwclock的时区在/etc/default/rcS文件中设置,里面有一个参数UTC,默认值为yes,表示使用UTC时区,如果设置为no,那表示使用osclock的时区。建议hwclock与osclock设置相同的时区,也就是no。 1、查看服务器硬件时间 sudo hwclock -r ,看到的时间格式为: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds 2、查看服务器系统时间 date ,看到的时间格式为: Wed May 23 11:02:41 HKT 2018 3、设置hwclock和osclock时区相同 sudo vim /etc/default/rcS ,找到: 修改为: 4、将系统时间写入硬件时间 sudo hwclock -w 5、修改系统时区 osclock的时区配置文件为/etc/timezone,不建议直接修改配置文件。 如果你想修改为CST时间,那么执行 sudo tzselect 命令时,选择Asia->China->Beijing Time即可,这时会提示使用Asia/Shanghai时区。(ubuntu和centos通用) 6、设置即刻生效 执行 date ,发现时区没有变化,依然是HKT。 sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime sudo ntpdate time.windows.com 如果执行ntpdate报错:ntpdate[18409]: no server suitable for synchronization found ,那么就换一个时间同步工具。 sudo apt-get install rdate sudo rdate -s time-b.nist.gov 再次执行 date ,发现时区已经变成了CST。 7、硬件时间同步 sudo hwclock -r ,发现硬件时间落后。 sudo hwclock -w ,再次把系统时间写入硬件时间,同步完成。 实例1:每分钟、每小时、每天、每周、每月、每年执行 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand 实例5:每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand 实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart 实例8:每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart 实例10:每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb 0 * * * * /etc/init.d/smb restart 实例12:晚上11点到早上7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart 实例13:每月的4号与每周一到周三的11点重启smb 0 11 4 * mon-wed /etc/init.d/smb restart 实例14:一月一号的4点重启smb 0 4 1 jan * /etc/init.d/smb restart 实例15:每小时执行/etc/cron.hourly目录内的脚本 01 * * * * root run-parts /etc/cron.hourly run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了。 目标:每分钟查看一下ganglia的状态,并保存到/tmp/log/ganglia目录。 1、创建/tmp/log/ganglia目录 sudo mkdir -p /tmp/log/ganglia sudo chmod a+w /tmp/log/ganglia 2、编辑crontab crontab -e ,选择编辑器为vim 3、在crontab文件中添加一行 4、查看crontab任务 crontab -l ,看到任务已经添加成功。 5、等待了五分钟,发现/tmp/log/ganglia目录下啥也没有。 sudo service cron status ,状态正常。 sudo /etc/init.d/cron restart ,重启cron试试。 又等待了五分钟,发现/tmp/log/ganglia目录下依然空空。 莫非是因为pssh没有使用绝对路径? whereis pssh ,找到pssh路径为 /usr/lib/pssh ,修改crontab为: 然而,并没有用。 还是查看下crontab日志吧! 以下主要参考 Ubuntu下用crontab 部署定时任务 。 1、编辑50-default.conf sudo vim /etc/rsyslog.d/50-default.conf 2、把cron前的井号去掉,也就是修改为: 3、重启rsyslog服务 sudo service rsyslog restart 4、重启crontab服务 sudo service cron restart 5、查看crontab日志 less /var/log/cron.log 果然发现了问题: 也就是说,命令确实按时执行了,只不过没有执行完,被百分号截断了,导致log文件没有正常生成! 修改crontab为: 终于,log文件成功生成,nice!但是,文件内容是空的!因为, /usr/lib/pssh 是一个目录,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置为 /usr/bin/parallel-ssh ,修改crontab: 至此,问题圆满解决。 实际使用的时候,一天获取一次ganglia的状态就够了,所以crontab改成: 以上,每天执行一次定时任务,抓取ganglia的运行状态保存到日志文件中。紧接着,我们的目标是使用脚本检查当天的日志文件,如果发现ganglia运行异常,则产生一个错误日志。 1、假设日志文件ganglia-20180524.log的内容为: 2、参考 grep命令最经常使用的功能总结 ,编写脚本checkganglia.sh 3、执行 chmod a+x checkganglia.sh ./checkganglia.sh 如果所有客户机的ganglia运行正常,就会输出All services are runing!。如果有的客户机ganglia进程不存在,则会在/tmp/log/ganglia/目录下生成当天的错误日志。 4、设置定时运行 因为日志的检查工作要在日志生成之后,所以时间上延后十分钟。 上面的脚本,还有很多要改进的地方。比如有的客户机宕机了,上面的脚本检查不出来。比如有的客户机ganglia服务没有启动,那么具体是哪几台?针对这两个问题,下面进行改进。假设已经知道客户机的数量为10。 参考 csplit命令 ,checkganglia.sh脚本修改为: 以上脚本,实现了当客户机数量不为10的时候,进行报错;当客户机ganglia服务没有启动时,进行报错,并且筛选出所有没有启动ganglia的客户机。 本文中,我们先学习了crontab的基础知识和基本用法。然后通过监控ganglia这一个应用场景来具体学习crontab的详细使用方法,包括查看cron日志的方法,crontab中命令转义的方法,定时执行脚本的方法,以及审阅日志脚本的编写和进阶。 至此,还不够完美,因为我们需要每天登录管理机查看有没有错误日志。下一篇 Linux设置邮件提醒 中,我们将会研究linux设置邮件提醒的方法。审阅完日志后,如果脚本能够给我们发送一封邮件,告知我们审阅的结果,那么我们就不必再每天查看错误日志。

4. java定时器如何配置文件,就是下面这个题,该怎么做啊

这是一个设计类的题目.不是叫你去配置,目前java的时间任务框架已经比较成熟了 解决这个问题大概需要做一下工作 1 写一个xml的解释器类,或者用java的XML的解释器,用来解释定时任务xml配置文件 2 写一个任务管理类在1解释完xml后,实际上就是根据xml的配置来执行定时任务了题目中的接口,实际上就是模拟Thread类,用来执行任务管理类就是根据配置来启动和关闭定时任务

5. 如何在spring中配置定时任务

spring的定时任务配置分为三个步骤: 1、定义任务 2、任务执行策略配置 3、启动任务(程序中一般我们都是到过写的,直观些) 1、定义任务 <!–要定时执行的方法–> <bean id="testTaskJob" class="org.springframework.scheling.quartz."> <property name="targetObject"> <!–指定要定时执行的方法所在类,将定时任务定义成bean–> <ref bean="testTask" /> </property> <property name="targetMethod"> <!–指定定时执行的方法–> <value>execute</value> </property> <property name="concurrent"> <!–指定目标封装为有状态的任务,有状态的任务不能并发执行,无状态的任务可并发执行–> <value>false</value> </property> </bean> 2、任务执行策略配置 (1)指定重复间隔的定时任务 <!– 调度时间设置–> <bean id="testTaskJobTrigger" class="org.springframework.scheling.quartz.SimpleTriggerBean"> <property name="jobDetail"> <ref bean="testTaskJob" /> </property> <!– 延时启动时间,单位ms –> <property name="startDelay" value="60000"></property> <!– 重复间隔时间,单位ms –> <property name="repeatInterval" value="60000"> </property> </bean> (2)按周期执行的任务

6. 如何在spring中配置定时任务

在spring 中 基于注解的 定时配置很简单,只需要三步哦,如下:1、在类名前加@Component注解,标记该bean,也就是配置扫描标记。2、在该类下的方法前加定是配置注解,@Schele("cron= 0/30 * * * * *")。3、添加配置文件(如下)。实例如下:1、class源文件。package com.iss.ole.cggl.quartz; import org.springframework.scheling.annotation.Scheled; /** * @function 订单计算 定时任务 * 1、试制订单定时计算 * a、车型拆分成零件需求 * b、需求生成订单明细 * 2、试装订单定时计算 * 3、工料废订单定时计算 * @author zhoujian * @date 2014/10/29 */@Componentpublic class Quartz extends Base<a href="https://www..com/s?wd=Biz&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Biz</a>{ /** 车型拆分 成零件 <a href="https://www..com/s?wd=BIZ&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">BIZ</a>*/ private PlanManager<a href="https://www..com/s?wd=Biz&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">Biz</a> planManagerBiz; /** 车型拆分为毛需求 */ @Scheled(cron="0 0 06 * * ? ") public void convertVehicleToParts() { try { planManagerBiz.createPartsList(); } catch (BaseException e) { logger.error(""); e.printStackTrace(); } } public PlanManagerBiz getPlanManagerBiz() { return planManagerBiz; } public void setPlanManagerBiz(PlanManagerBiz planManagerBiz) { this.planManagerBiz = planManagerBiz; } }2、配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="<a href="http://www.springframework.org/schema/beans" " target="_blank">http://www.springframework.org/schema/beans" </a> xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" " target="_blank">http://www.w3.org/2001/XMLSchema-instance" </a> xmlns:context="<a href="http://www.springframework.org/schema/context"" target="_blank">http://www.springframework.org/schema/context"</a> xmlns:p="<a href="http://www.springframework.org/schema/p" " target="_blank">http://www.springframework.org/schema/p" </a> xmlns:task="<a href="http://www.springframework.org/schema/task"" target="_blank">http://www.springframework.org/schema/task"</a> xmlns:tx="<a href="http://www.springframework.org/schema/tx"" target="_blank">http://www.springframework.org/schema/tx"</a> xmlns:aop="<a href="http://www.springframework.org/schema/aop" " target="_blank">http://www.springframework.org/schema/aop" </a> xsi:schemaLocation="<a href="http://www.springframework.org/schema/beans " target="_blank">http://www.springframework.org/schema/beans </a> <a href="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" target="_blank">http://www.springframework.org/schema/beans/spring-beans-3.0.xsd</a> <a href="http://www.springframework.org/schema/context " target="_blank">http://www.springframework.org/schema/context </a> <a href="http://www.springframework.org/schema/context/spring-context-3.0.xsd" target="_blank">http://www.springframework.org/schema/context/spring-context-3.0.xsd</a> <a href="http://www.springframework.org/schema/tx " target="_blank">http://www.springframework.org/schema/tx </a> <a href="http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" target="_blank">http://www.springframework.org/schema/tx/spring-tx-3.0.xsd</a> <a href="http://www.springframework.org/schema/task" target="_blank">http://www.springframework.org/schema/task</a> <a href="http://www.springframework.org/schema/task/spring-task-3.0.xsd " target="_blank">http://www.springframework.org/schema/task/spring-task-3.0.xsd </a> <a href="http://www.springframework.org/schema/aop " target="_blank">http://www.springframework.org/schema/aop </a> <a href="http://www.springframework.org/schema/aop/spring-aop-3.0.xsd " target="_blank">http://www.springframework.org/schema/aop/spring-aop-3.0.xsd </a> "> <!– 扫描有相关标记的bean,初始化,交给spring管理–> <context:component-scan base-package="com.iss.ole.cggl.quartz" /> <!– 注入属性–> <bean id="quartz" class="com.iss.ole.cggl.quartz.Quartz"> <property name="planManagerBiz"> <ref bean="planManagerBiz"/> </property> </bean></beans>

7. 按键精灵读取配置文件,运行子程序

用子程序传参.

上面Call 任务(i)这个是对的.

但是下面的子程序 任务1 后面的数字1是作为名称不是参数,所以它不会运行.应该:

任务=Plugin.File.ReadINI("rw","rw","c:配置.ini")任务=split(任务,"|")Fori=0ToUBound(任务)If任务(i)="做任务"ThenCall做任务ElseIf任务(i)="打怪"ThenCall打怪EndIfNextSub打怪EndSubSub做任务EndSub

8. Centos7 利用crontab定时执行任务及配置方法

crond是什么?

crond 和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。

而crond正是它的守护进程。cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务。

linux定时任务分为两种

1)系统自身轮训的任务,比如定时(5天或者一周)备份/var/log/message等日志文件(系统的定时任务一般分为七段或者八段(centos6以下),以空格分割)

系统轮训的配置文件/etc/logrotate.conf (centos7以下的在/etc/cron.daily/logrotate/logrotate.conf )

2)用户执行的定时任务(用户的定时任务一般分为六段)

at适合执行一次就结束的调度任务

anacrontab适合于非7*24小时开机的服务器准备的,是以天为单位执行的,不能指定以分钟的定时任务,在停机期间没有任务执行,可以开机时执行。

cron服务是Linux的内置服务,但它不会开机自动启动,可以每分钟执行任务。可以用以下命令启动和停止服务:

以上1-5行分别为启动、停止、重启服务和重新加载配置、查看服务状态

把cron设为在开机的时候自动启动

crontab操作

基本格式

基本使用

9. Spring使用@Scheled注解配置定时任务

项目中经常会用到定时任务。所以在这里总结一下在SSM框架中如何配置定时任务。 1、在spring的配置文件spring.xml(文件名可以任意)中增加如下配置 1):spring配置文件加入头部加入

2):spring配置文件加入定时任务注解配置

3):spring配置文件加入定时任务扫描包

4):spring配置文件加入配置定时任务的线程池。因为spring的定时任务默认是单线程,多个任务执行起来时间会有问题。

2、在package com.sc.api下新增定时任务相关类ScheledApiTest 调用的两种方式: @Scheled注解为定时任务,@Component 把普通pojo实例化到spring容器中,相当于配置文件中的<bean id=”” class=””/> 1):如果需要以固定速率执行,只要将注解中指定的属性名称改成fixedRate即可,以下方法将以一个固定速率1分钟来调用一次执行,这个周期是以上一个任务开始时间为基准,从上一任务开始执行后1分钟再次调用。 @Scheled(fixedRate = 1000 60 30) //心跳更新。启动时执行一次,之后每隔1分钟执行一次

2):如果你需要在特定的时间执行,就需要用到cron,cron表达式里为执行的时机 @Scheled(cron = “0 34 13 * * ?”) //每天的13点30分执行一次。

3、启动tomcat服务,定时任务就会按时执行。 关于CRON表达式 含义

10. 在linux下怎么让一个脚本定时运行

Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep cron cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。


赞 (0)