-
java定时执行多任务和quartz定时执行多任务
2012-12-04 17:18:55java定时执行多任务和quartz定时执行多任务 -
js执行定时执行任务
2019-08-17 16:28:01最近一周,上面要求我开发以图搜图的图片搜索功能。...唉,想都没想,直接上js定时执行好了,简单省心 <script> //执行定时任务,并返回任务id var myTarget = setInterval(function(){ myDo(...最近一周,上面要求我开发以图搜图的图片搜索功能。捣鼓两天后完成了所有功能细节。但是线上已经存在很多图片了。需要将所有线上的图片提取出来,然后上传到搜图特征库里。
唉,想都没想,直接上js定时执行好了,简单省心
<script> //执行定时任务,并返回任务id var myTarget = setInterval(function(){ myDo() }, 20000); //定时任务要做的事情 function myDo() { $.ajax({ url:"your request url", type:'POST', success:function (data) { if(data.data.flag == 0){ console.log(data); myStopFunction(); }else{ console.log(data); } } }) } //暂停定时任务 function myStopFunction() { clearInterval(myTarget); } </script>
-
Ubuntu 定时执行脚本
2019-04-02 21:45:11cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu中,cron是被默认安装并启动的。 二、例子 直接上例子,来看看怎么用。 需求:定时每天8点,自动执行保存在/root目录下hello.sh...一、关于crontab
cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu中,cron是被默认安装并启动的。
二、例子
直接上例子,来看看怎么用。
需求:定时每天8点,自动执行保存在/root目录下hello.sh脚本
1、方法很简单,只需编辑ect下crontab文件就行了,这个文件里存放的就是cron要执行的命令,以及定时执行的时间
vim /etc/crontab
2、最后一行添加:
00 08 * * * root /root/hello.sh
三、解释
1、crontab定时任务语法如下:
minute hour day month week user command #顺序:分 时 日 月 周 用户 命令
2、说明:
minute: 表示分钟,可以是从 0 到 59 之间的任何整数。 hour:表示小时,可以是从 0 到 23 之间的任何整数。 day:表示日期,可以是从 1 到 31 之间的任何整数。 month:表示月份,可以是从 1 到 12 之间的任何整数。 week:表示星期几,可以是从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日。 user:linux的用户身份,例如root,或者其他用户 command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
3、在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如 month 字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,\ 例如*/10,如果用在 minute 字段,表示每十分钟执行一次。
四、补充
cron 服务的启动与停止,命令如下:
1)service cron start /*启动服务*/
2)service cron stop /*关闭服务*/
3)service cron restart /*重启服务*/
4)service cron reload /*重新载入配置*/
5)service cron status /*查看crond状态*/
五、兴趣拓展
写了一个每天8点从中国天气网爬取今天天气,传到ssh登录欢迎页面的小程序。这样每次ssh连接的时候就能看到当天的天气情况了。因为我在深圳所以用的深圳的例子来举,你可以自己去中国天气网找到自己城市的页面来爬。
1、shell脚本:/bin/tianqi.sh
#!/bin/bash weatherDateRoot=http://www.weather.com.cn/weather1d/101280601.shtml #中国天气网深圳 weatherDataFile=/root/weather.html wget $weatherDateRoot -O $weatherDataFile > /dev/null 2>&1 #下载页面 result=$(cat $weatherDataFile | sed -n '/<input type="hidden" id="hidden_title" value/p') subresult1=${result##*value=\"} #处理网页,获取数据 subresult2=${subresult1%%\"*} #这边涉及到字符串分割,不熟悉可以搜Shell截取字符串 echo printf "\"${subresult2} 深圳\"" >>/etc/update-motd.d/00-header #将数据写入欢迎页面文件,我这边还添了个深圳两个字
2、crontab文件:
00 08 * * * root cp /etc/update-motd.d/00-header_bk /etc/update-motd.d/00-header 01 08 * * * root /bin/tianqi.sh
什么意思呢,第一条执行的是将备份的00-header_bk文件覆盖00-header文件,因为每次执行完tianqi.sh,都会在最后追加当日天气状况,如果不用备份覆盖,那么就会保留有之前的天气。因此,第一次启用这个程序之前需要先备份一下00-header,命名为00-header_bk。第二条就是执行天气获取脚本了。
好了,要讲的就这么多。
六、使用中用到的一些细节(下面的有用到的看看,不用的就不用看了)
1、crontab的运行目录是user的家目录
调用python脚本时,经常要用到引入某个自定义的包的操作,要引入这个包,需要先将该包的路径添加进环境变量(这边需要对python有所了解)。
例如:脚本路径是:/root/aaa/hello.py,你想在hello.py中引入/root/bbb/world.py,则你需要先在hello.py中将bbb包的路径添加进环境变量。
a、你可以在hello.py中使用绝对路径添加环境变量:
import sys sys.path.insert(0, '/root/bbb/')
添加完环境变量,在hello.py中就可以直接引入world.py了
import world
如果没有添加环境变量,那么python就不知道去哪里引入world,就会报错。
b、使用相对路径添加环境变量:
下面重点来了:当使用相对路径时,引入的包的相对位置是相对于运行目录而言,而不是文件本身的相对位置!
解释一下,运行目录不是你python脚本文件的路径,而是你执行python命令的路径。比如你在/root路径下运行下面这个脚本,那么你的运行目录就是/root。如果你在/root/ccc/ddd路径下执行这个命令,那么你的运行目录就是/root/ccc/ddd。
python /root/aaa/hello.py
如果要在/root/ccc/ddd下运行,/root/bbb对于/root/ccc/ddd的相对路径是:
import sys sys.path.insert(0, '../../bbb') #..代表父目录,所以..代表工作路径/root/ccc/ddd的父目录/root/ccc, #../..代表父目录的父目录/root,../../bbb代表/root/bbb
添加完环境变量,在hello.py中也可以直接引入world.py了:
import world
重点!重点!下面这个问题!!
使用crontab定时执行python脚本时的运行目录是什么?
答:是你这个用户的家目录!,例如root用户那就是/root。爱玛呀,终于绕回来了!
别问我为啥写了一大段跟本文主题好像关系不是很大的内容。我就是因为这个问题,引入包时老是报错,搞了好半天!写下来给后来人借鉴,防止再踩这个坑。
-
linux定时执行shell脚本
2018-01-13 15:29:39写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类似于DOS...写一个shell脚本,定时执行简单示例
很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下
Shell俗称壳,类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
我的虚拟机是centos7.0.2
接下来 写一个简单的shell命令:
1.先进入根目录
cd /root
2.使用vi编辑器 可以直接 # vim hello.sh编写第一个shell文件 hello.sh, 注意一定要以.sh结尾
vim hello.sh
3.编写第一个shell文件,#!/bin/bash 是必须要写的,表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本, echo "hello world !!"表示想前端打印一句话,具体看各自需求。
4.通过chmod命令赋予该脚本的执行权限chmod 755 hello.sh,否则没有执行权限,/root/hello.sh表示在全路径下执行该shell脚本
就此一个简单的shell脚本就这样写完了 具体的这里就不讲了。(说白了,shell脚本就相当于一个文件,它专门来干自己独立的任务)
虽然一个简单的shell脚本写完了 但是运行后只能执行一次 对很多应用场景来说还是不够,接下来说一下定时任务
linux应该都有crontab,没有的话可以安装一下:
yum install vixie-cron
yum install crontabs
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。安装完以后开启crontab服务
service crond start
用以下的方法启动、关闭这个cron服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置查看crontab服务状态:service crond status
手动启动crontab服务:service crond start查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on也可以用设置开机自动启动crond服务:
[root@CentOS ~]# chkconfig crond on
查看各个开机级别的crond服务运行情况
[root@CentOS ~]# chkconfig –list crond
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
可以看到2、3、4、5级别开机会自动启动crond服务
取消开机自动启动crond服务:
[root@CentOS ~]# chkconfig crond off设置需要执行的脚本
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
crontab -e配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务
查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
删除任务调度工作
crontab -r //删除所有任务调度工作
直接编辑 vim /etc/crontab ,默认的文件形式如下:前四行是有关设置cron任务运行的环境变量。
SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),
PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。
如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。
文件/etc/crontab中每行任务的描述格式如下:
minute hour day month dayofweek command
minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)
root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。
整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。
符号“/”指定步进设置。“/<interger>”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。
以“#”开头的为注释行,不会被执行。
比如上述图中 执行的是每隔一分钟执行一半hello.sh脚本 上边脚本输出的内容 大家也知道 >> 符号 指定文件获取内容的存放位置 比如访问一个地址 命令 curl http://www.baidu.com
linux系统字符界面 无法显示画面只能把访问的页面编译后的代码原样输出 如:
这样大家看着很乱吧
当然也有-I 参数 静默访问 curl -I http://www.baidu.com
这样只显示一组http状态 但还是很乱 直接把他写进固定的日志文件就方便多了
cat 一下 查看 这样就简单多了
就此一个简单的定时任务就完成了
结束语》》夕阳无限好,黄昏又何妨。
-
JAVA定时执行任务,每天定时几点钟执行任务(Timer)
2019-03-06 15:25:04JAVA定时执行任务,每天定时几点钟执行任务 转自:https://www.cnblogs.com/longshiyVip/p/4546123.html JAVA定时执行任务,每天定时几点钟执行任务的示例如下: 1.建立TimerManage类,设置时间点,时间点设置的管理...JAVA定时执行任务,每天定时几点钟执行任务
转自:https://www.cnblogs.com/longshiyVip/p/4546123.html
JAVA定时执行任务,每天定时几点钟执行任务的示例如下:
1.建立TimerManage类,设置时间点,时间点设置的管理类,代码如下:
package com.pcitc.time;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;public class TimerManager {
//时间间隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定制每日2:00执行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date=calendar.getTime(); //第一次执行定时任务的时间
//如果第一次执行定时任务的时间 小于 当前的时间
//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}
Timer timer = new Timer();
NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schedule(task,date,PERIOD_DAY);
}
// 增加或减少天数
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}在 TimerManager 这个类里面,一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。
2.建立NFDFlightDataTimerTask类,调用业务代码的类放在该类的run方法里面执行。
package com.pcitc.time;
import java.util.TimerTask;
import com.sun.istack.internal.logging.Logger;
public class NFDFlightDataTimerTask extends TimerTask {
private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);
@Override
public void run() {
try {
// 在这里写你要执行的内容
System.out.println("功能方法写在这里了...");
} catch (Exception e) {
log.info("-------------解析信息发生异常--------------");
}
}
}3.在web容器中使用的话,可以配置上下文监听器,使容器在启动的时候加载该监听器,代码如下:
package com.pcitc.time;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}public void contextDestroyed(ServletContextEvent event) {
}}
4.在web.xml里面配置监听器
<listener> <listener-class> com.pcitc.time.NFDFlightDataTaskListener </listener-class> </listener>
-
微信小程序 延时执行 定时执行
2017-06-08 14:22:39微信小程序 延时执行 定时执行 setTimeout(function () { //要延时执行的代码 }, 1000) //延迟时间 这里是1秒 -
vbs定时执行
2017-06-07 14:34:34vbs定时执行为了避免多次点击重复执行,首先要判断是否已经在运行wscript.exeDim OK set bag=getobject("winmgmts:\\.\root\cimv2") set pipe=bag.ExecQuery("select * from win32_process where name='wscript.exe... -
java定时任务,每天定时执行任务
2017-10-20 00:33:56java定时任务,每天定时执行任务 -
Linux定时执行任务crontab
2018-03-20 07:34:34`crontab`可以定时执行任务,比如可以配置为每天几点执行什么任务,其实还可以配置为开机后执行一个任务。本文讲述了crontab的使用,并给出示例...... -
linux定时执行脚本
2017-12-21 15:07:45linux 定时执行shell脚本 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ... -
Observable.interval定时执行
2019-10-22 17:36:28Observable.interval方法可以定时执行自定义的逻辑,常用方法如下: /** * 定时执行 * * @param period 每次执行的间隔的时间 * @param unit 时间单位 * @return Observable对象 */ public static ... -
ubuntu定时执行任务
2017-11-23 22:02:58当然,我是不可能告诉她,我是用crontab来定时执行python脚本滴! 好了,废话不多说,直接进入正题!ubuntu定时执行脚本cron是一个Linux下的后台进程,用来定期的执行一些任务。因为我用的是Ubuntu,所以这篇文章中... -
定时执行R脚本
2018-12-11 23:46:27方法就是在Linux下设置定时任务,定时执行脚本,这样就不用每次手动执行,而且会节省很多时间,减少很多麻烦,毕竟科技因懒人而进步。 首先说说定时任务工具crontab,crontab可以设置任务执行的时间,比如每月的1号... -
使用crontab定时执行shell脚本
2018-02-08 08:48:04那么今天就来简单说下如何使用crontab定时执行shell脚本。步骤一 首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron ... -
C# 定时执行方法
2018-06-29 11:41:51定时执行某个方法 private void button1_Click(object sender, EventArgs e) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Enabled = true; timer.Inter... -
oracle的一个定时执行任务(job定时执行存储过程)
2017-07-17 08:56:52这个可以在表中加上一个时间戳字段,然后后期比对时间戳字段来对相应的账号进行解锁,我比较偷懒,就想着用oracle定时执行任务来做一个批量自动处理,把这个交个数据库自己去执行,省下写方法去比对的操作。... -
Linux系统定时执行任务
2019-10-27 01:23:28Linux系统定时执行任务 Linux中通过crontab命令,可以在固定的间隔时间执行指定的系统指令或者shell脚本 Crontab 的介绍 crontab 命令被用来提交和管理用户的需求周期性执行的任务 Linux会自动启动Crontab进程... -
linux 定时执行php文件
2019-01-14 10:57:51工作需要 经常我们会定时执行php一个程序 满足业务需求 比如 :定时给用户进行邀请返利、定时进行用户消费排名更新、定时进行余额转账等等。 原来之前博客写过定时进行数据库和线上代码的备份。 现在记录哈定时... -
前端页面定时 执行任务
2019-06-21 11:38:49AngularJS定时执行任务 1、在控制器中注入 interval 在 controller 中 引入 $interval 【类比$http ,$scope】 2、var time = $interval(X,Y[,Z]) x: 需要执行的代码 y:指定执行的时间间隔 z:指定代码执行的... -
PHP定时任务执行处理、Crontab定时执行程序,Linux设置定时任务(教程案例)
2018-09-12 17:51:50【第二步】:设置Crontab定时时间,定时执行task.sh脚本文件 【案例一】:每月1号、15号的06:10点,定时备份网站源码: 【第一步】:先写youhutong.sh脚本文件。 [root@localhost ~]# [root@localhost ~]# ... -
oracle-存储过程定时执行任务
2019-03-26 14:55:13平时工作多数业务的数据,需要有时间截点截止当天24点,定时执行计划还是用的比较多的。终于有时间手动整理总结一些内容了。 首先用一个完整的例子来实现定时执行存储过程。 任务目标:每小时向test表中插入一条数据... -
Linux定时执行java程序
2018-06-11 01:21:09Linux定时执行java程序cron是Linux系统下一个自动执行指定任务的程序。用户可以通过crontab命令来设置自己的定时任务。Linux定时执行java程序,需要将java程序打包为jar包,下面介绍一下idea环境下打包maven下普通的... -
scrapy定时执行抓取任务
2016-11-18 22:38:54原文链接:http://www.cnblogs.com/justinzhang/p/4500409.html在ubuntu环境下,使用scrapy定时执行抓取任务,由于scrapy本身没有提供定时执行的功能,所以采用了crontab的方式进行定时执行:首先编写要执行的命令... -
定时执行docker中的任务
2020-04-26 17:09:20一般我们用linux定时执行任务,用自带的crontab就完事了,也非常好用。 但我之前都是使用sh脚本,执行本地任务,至于怎么执行docker的任务,还从来没试过。 准备 首先准备好sh脚本 比如 //test.sh echo 'hello' >... -
kettle中job的定时执行
2019-05-29 18:04:32在完成job后经常会有定时执行的需求,一种是在start中设置,但是需要串口一直存在,操作起来不太方便;另外就是在kettle中添加.bat文件,然后把.bat文件添加到计算机的任务计划中定时执行,具体操作如下: 1、为了... -
java定时执行任务CRON表达式
2018-11-24 17:21:05CRON表达式在线验证网址:... 在类上使用@Scheduled注解例子: ... @Scheduled(cron="0/5 * * * * ? ") //定时执行任务注解 public class QuartzDemo { 类中方法省略 } ## 以下为CRON表达式规则正文: ... -
ThinkPHP实现定时执行任务的两种方法
2016-09-22 18:19:23在平常的项目中我们总是会遇到需要将某个方法任务定时执行的问题,定时执行方法任务如果我们拥有服务器的权限,我们可以直接在服务器设置定时任务,例如在Windows的任务计划程序中进行设置,在Linux中编写脚本进行... -
线程实现定时执行任务
2016-12-28 09:56:19在一些程序执行时,可能要我们去定时去执行某个方法,例如在指定时间...此主要了解以线程的方式去定时执行某个方法: 定时执行方法: package com.citychat.timedaycount; import java.util.TimerTask; impo -
线程池开启任务定时执行
2019-04-13 23:10:34获取数据通过线程池、队列来定时执行处理 方法: 1:使用@Scheduled定时器获取需要执行的数据 2:获取需要处理的数据list、循环绑定线程、将数据list放入队列、开启队列的扫描任务处理 3:循环获取list中的...
-
Java星选一卡通
-
ST-LINK 上位机软件
-
超多Xilinx FPGA工程例子源码.7z
-
考研资料规划(供参考)
-
查找算法------顺序查找
-
彻底学会正则表达式
-
跟我练内测小分队学习礼包
-
备战2021软考网络规划设计师历年真题套餐
-
前端架构师-速成
-
BJTU1820 懒羊羊的作业
-
jquery如何根据内容做隐藏效果?
-
微信支付2021系列之扫码支付一学就会java版
-
XMPPFramework开发(一):Openfire服务器搭建
-
2020云计算整包国基资源
-
教学管理系统 web+app
-
数据类型转换、运算符、方法入门
-
研究生复试英语口语考试背诵版
-
win远程多用户rdpwrap配置文件(10.0.10240.18186)
-
MFC开发简单聊天程序
-
VHDL实现对图像的采集和压缩.7z