如何利用crond实现秒级java如何实现定时任务务

17:39 提问
linux crontab每十秒执行怎么写
如题,我按网上办法
* * * * sleep 10;wall hello
* * * * sleep 20;wall hello
* * * * sleep 30;wall hello
* * * * sleep 40;wall hello
* * * * sleep 50;wall hello
这样写之后,出现了N多进程
请问,该怎么写
按赞数排序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
在我了解的Linux系统中,crontab 并不支持按秒来触发,如果有这样的需求,建议用程序来实现。
以下为crontab配置的相关信息    *  *  *  command
分 时 日 月 周 
在我了解的Linux系统中,crontab 并不支持按秒来触发,如果有这样的需求,建议用程序来实现。
以下为crontab配置的相关信息
分 时 日 月 周  命令
1: * * * * *
echo "Hello World"
每分钟打印一个Hello World!
2: 10 18 * * *
echo "Hello World"
每天的的18:10打印Hello World!
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐在Linux下利用crond实现一个定时任务并完成一个守护(精灵)进程
时间: 23:56:18
&&&& 阅读:1683
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&一、利用crond实现一个定时任务&&&&&&&&在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。&crontab支持两种状态:a.直接编写计划任务;b.使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定。为当前用户创建cron服务1. &键入 crontab& -e 编辑crontab服务文件cron文件语法:&&&&& 分 & & & 小时 & & 日 & & & &月 & & & &星期 & & &命令&&&&& 0-59 & 0-23 & &1-31 & &1-12 & & &0-6&&&& command&&&& (取值范围,0表示周日一般一行对应一个任务)&&&& 记住几个特殊符号的含义:&&&&&&&& “*”代表取值范围内的数字&&&&&&&& “/”代表”每”,&&&&&&&& “-”代表从某个数字到某个数字,&&&&&&&& “,”分开几个离散的数字&&&& &例如 文件内容如下:&&&&& */1 * * * *echo "it‘s dinner time"&& /home/admin/abc.txt&&& &*/2 * * * * /bin/sh /home/admin/jiaoben/deleteFile.sh&& & & /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行脚本的命令 ,后面一段时指脚本存放的路径。2. 查看该用户下的crontab服务是否创建成功, 用 crontab& -l 命令 &3.cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。  /sbin/service crond start& & //启动服务  /sbin/service crond stop& &&&//关闭服务  /sbin/service crond restart&&//重启服务  /sbin/service crond reload& &//重新载入配置  /sbin/service crond status& &//查看服务状态&4. 查看服务是否已经运行用 ps -ax | grep cron&5. crontab命令&&&& &cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:&&&&&crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 &  crontab -l //列出某个用户cron服务的详细内容  crontab -r //删除没个用户的cron服务  crontab -e //编辑某个用户的cron服务  比如说root查看自己的cron设置:crontab -u root -l  再例如,root想删除fred的cron设置:crontab -u fred -r  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls && /tmp/ls.txt&&&& && 任务调度的crond常驻命令&&&&&&& crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.5、权限问题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命令。&例如:每隔一分钟:用tail -f abc1.txt监视便会得到如下结果,完成了一个简单的定时任务:注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。6. 任务调度设置文件的写法&&&&&&1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。&&&&& 2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务&&&& cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次&/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: &  SHELL=/bin/bash&&  PATH=/sbin:/bin:/usr/sbin:/usr/bin&  MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号&&  HOME=/ //使用者运行的路径,这里是根目录&&  # run-parts&&  01&& *&& *&& *&& *&&&& root run-parts /etc/cron.hourly&&&&&&&& //每小时执行/etc/cron.hourly内的脚本 & &&& 02&& 4&& *&& *&& *&&&& root run-parts /etc/cron.daily&&&&&&&&&& //每天执行/etc/cron.daily内的脚本&&&&&&&& 22&& 4&& *&& *&& 0&&&& root run-parts /etc/cron.weekly&&&&&& //每星期执行&/etc/cron.weekly内的脚本&&&&&&& 42&& 4&& 1&& *&& *&&&& root run-parts /etc/cron.monthly&&&& //每月去执行/etc/cron.monthly内的脚本 &  注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了二、守护进程&&&&守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的打多数服务器就是用守护进程实现的。如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。如,作业规划进程crond等。Linux系统启动时会启动很多系统服务进程,例如“网络登录过程”中的inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 &我们可以用ps axj命令查看系统中的进程。参数a表示不仅列出当前用户的进程,也列出所有其他用户的进程,参数x表示不仅列有控制终端的进程,也列出所有无控制终端的进程,参数j表示列出与作业控制相关的信息。凡是TPGID一栏写着-1的都是没有控制终端的进程,也就是守护进程。在COMMAND一列[]括起来的名字表内核线程,这些线程在内核里创建,没有用户空间代码,因此没有程序文件名和命令行, 通常采用以k开头的名字,表示Kernel。init进程我们已经很熟悉了,udevd负责维护/dev目录下的设备文件,acpid负责电源管理,syslogd负责维护/var/log下的日志文件,可以看出,守护进程通常采用以d结尾的名字,表Daemon。创建守护进程最关键的一步是调用setsid函数创建一个新的Session,并成为Session Leader。该函数调用成功时返回新创建的Session的id(其实也就是当前进程的id),出错返回-1。注意,调用这个函数之前,当前进程不允许是进程组的Leader,否则该函数返回-1。要保证当前进程不是进程组的Leader也很容易,只要先fork再调用setsid就行了。fork创建的子进程和父进程在同一个进程组中,进程组Leader必然是该组的第一个进程,所以子进程不可能是该组的第一个进程,在子进程中调用setsid就不会有问题了。 &成功调用该函数的结果是:1. 创建一个新的Session,当前进程成为Session Leader,当前进程的id就是Session的id。2. 创建一个新的进程组,当前进程成为进程组的Leader,当前进程的id就是进程组的id。3. 如果当前进程原本有一个控制终端,则它失去这个控制终端,成为一个没有控制终端的进程。所谓失去控制终端是指,原来的控制终端仍然是打开的,仍然可以读写,但只是一个普通的打开文件而不是控制终端了。创建守护进程 &1. 调用umask将文件模式创建屏蔽字设置为0.2. 调用fork,父进程退出(exit)。原因:1)如果该守护进程是作为一条简单的shell命令启动的,那么么进程终止使得shell认为该命令已经执行完毕。2)保证子进程不是一个进程组的组长进程。3. 调用setsid创建一个新会话。setsid会导致:1)调用进程成为新会话的首进程。 2)调用进程成为一个进程组的组长进程 。3)调用进程没有控制终端。(再次fork一次,保证daemon进程,之后不会打开tty设备)4. 将当前工作目录更改为根目录。5. 关闭不在需要的文件描述符。6. 其他:忽略SIGCHLD信号例:运行结果:本文出自 “” 博客,请务必保留此出处标签:&&&&&&&&&原文地址:http://ab6107.blog.51cto.com/1922
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!简单的秒级定时器-解决crontab的不足
思路:一个while永久循环,每隔1秒检查任务进程是否在运行,如果在运行则跳过本次执行,否则执行任务进程并放置后台(不阻塞整个循环)。这里仅是简单实现,暂不考虑执行循环体内的命令开销时间,并且业务也没有达到精确到毫秒的地步,这是比较快捷的方案。最后,此定时器进程由supervisord监管,这样挂掉或被误杀之后能恢复正常。
#!/bin/bash
& process_name='/xxpath/bin/php
/yypath/test.php'
& #跳过已在运行的任务
& process_num=$(ps -ef|grep "$process_name"|grep
-v grep|wc -l)
& if [ $process_num -eq 0 ]
#开启新任务,并放置后台运行,不阻塞循环
$($process_name && /dev/null 2&&1 &)
#每秒执行,也可根据自身业务情况做修改。不过建议每秒执行,然后在任务进程中统一处理所有业务
& sleep 1;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。扫一扫体验手机阅读
crond定时任务详细介绍
<span type="1" blog_id="1288785" userid='
23篇文章,3W+人气,0粉丝
高并发架构之路
¥51.00119人订阅
新西兰资深网工运维之道
¥51.00409人订阅
前百度高级工程师的架构高可用实战
¥51.00232人订阅
<span type="1" blog_id="1288785" userid='在Linux中实现定时任务 最简单的办法或许就是它了
 作者: 谢涛编译 编辑:
  【IT168 编译】在使用一个计算机系统时,常常需要在日程表上执行某些重复的工作。你可以通过使用Linux Cron工具和Crontab命令更简便地执行每一次所需的命令,而不是手动去执行。想知道如何使用这些命令在Linux中安排定时任务吗?继续往下看吧。  就像Windows中的task调度工具一样,你也可以利用Cron工具来安排Linux的工作,定期在固定的时间间隔运行。通常用于自动化系统维护或管理工作,如备份数据、更新包和更多的一些工作,任何Linux系统管理员都知道它的重要性。  Linux中的定时任务:基本指南  什么是Cron?  Cron服务是一种基于时间的工作安排服务,通常在系统启动时启动。它会检查每一分钟的工作,并在它们存在时启动。  什么是Crontab?  为了控制任务进度,我们在Linux中使用Crontab程序。对于cron表来说,Crontab是一个配置文件。Crontab的每一行代表一个任务,包含关于运行什么和什么时候运行的信息。下面是Linux Crontan的格式:  M H DOM MON DOW Command  每当所有的时间规范字段与当前日期和时间匹配时,就会执行该命令。通常情况下,我们在时间规范字段中使用星号(*)来匹配该字段中的任何值。  如何打开和编辑Crontab  现在,让我们学习如何打开和编辑Crontab文件,这是Linux任务调度中的一个重要步骤。为了实现这一目的,我们可以使用以下命令:  crontab –e  执行此命令后,可能会提示你选择一个编辑器。如果你是初学者,建议选择Nano,当然,也可以根据自己的喜好习惯任意选择。  选择编辑器之后,会打开一个类似于下面屏幕截图的文件:  注意:Hash(#)符号用于表示注释,这些注解将被Cron忽视。  定时任务  现在,为了在Linux中调度任务,你所要做的就是按照上面提到的格式输入所有必要的细节。这里有一个例子:假设我想在每个月的第一天的凌晨2:30运行命令usr/bin/backup,需要将下面一行添加到Crontab:  30 02 1 * * /usr/bin/backup  30 : 30分  02 : 上午2点  1 : 第一天  * : 每个月  * : 这周的每一天  指定多个值和范围  也有可能在Linux中安排工作多次出现。只需使用逗号(,)分隔所需要的值。我们继续用前面的例子进行介绍。现在,如果我想在下午2点半执行命令,我需要做的就是:  30 02,14 1 * * /usr/bin/backup  30 : 30分  02,14 :2 AM和2 PM  1 :第一天  * : 每个月  * : 这周的每一天  注意:我们已经利用14指定了下午2点,因为Crontab使用24小时的时间格式。  再者,Crontab甚至可以在Linux任务调度中指定一段时间,只需插入一个由dash (–)分隔的值。在这里,我们将再次考虑我们的初始示例,以展示它是如何完成的。这一次,假设我们希望在每个月的第一天的2点到2点之间执行命令。我们将以以下方式来做这件工作:  00 02-14 1 * * /usr/bin/backup  00 : 0 分  02-14 : 2AM, 3AM, 4AM, 5AM, 6AM, 7AM, 8AM, 9AM, 10AM, 11AM, 12AM, 1PM, 2PM 1 : 第一天  * : 每个月  * : 这周的每一天  Crontab快捷键  在本文中,关于如何在Linux中调度任务的一个好处是,考虑一下Crontab格式的下面的快捷方式和关键字,这在Linux中可以很方便地安排工作:  @yearly : 在每年1月1日凌晨0点运行一次  @annually : 与@yearly 相同  @monthly : 在每月第一天的凌晨0点运行一次  @weekly : 在每周日的凌晨0点运行一次  @daily : 每天0点运行一次  @midnight : 与@daily相同  @hourly : 在每小时开始时运行一次  例如:假设我每个月必须运行/usr/bin/backup命令,Crontab的格式应该是:  @monthly /usr/bin/backup  一旦你将更改保存到Crontab并退出,你会看到以下消息,这表明你成功地执行了该流程。  有任何疑问或个人建议,请在评论区留言与大家一起讨论吧!
IT168企业级
扫一扫关注}

我要回帖

更多关于 quartz实现定时任务 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信