java定时调用接口同步数据,C# 中web如何定时同步数据

之前做定时器同步方法试过很多方法, 不过都有些问题

1)quartz + IIS 方式(web项目发布到IIS上,出现IIS应用池回收问题)

2)用线程Timer方式 (出现多个线程同步同个任务问题)

3)window计划任务+ api方法 方式

4)quartz+ window服务(暂不到怎么弄)

最后确定用第(3)种方式,解决了定时同步数据问题。

假如我们需要每隔5分钟定时同步数据,那么做一个api 同步方法映射到外部可调用,

然后用window计划任务做一个任务,定时调用批处理文件(文件包含调用api方法的语法)

我这边做一个每隔5分钟调用方法获取数据demo

1、api方法

///

///获取配送点列表(收货客户或送货客户)///

/// 传递数据

///

[System.Web.Http.HttpPost]public stringGetDeliveryPointList([FromBody] JObject obj)

{

MobileResult result=myService.GetDeliveryPointList(obj);returnJsonConvert.SerializeObject(result);

}

注意:这个方法外部可通过ajax调用的到,如果是要同步数据,那边方法改成可同步数据方法

2、配置curl表达式

@echo off

curl--data "PAGE_NUM=1&ROW_NUM=5" http://14.23.113.2:9698/api/IPhoneApp/MobileApp/GetDeliveryPointList/1 | iconv -f utf-8 -t gbk >>D:\Sync\SyncFuns_log.txt

exit

注意:“PAGE_NUM=1&ROW_NUM=5”这个是方法的参数,“http://14.23.113.2:9698/api/IPhoneApp/MobileApp/GetDeliveryPointList/1”这个是请求路径,

“| iconv -f utf-8 -t gbk” 这个是为了防止返回数据出现乱码问题,需安装libiconv.exe工具才支持,“>>D:\Sync\SyncFuns_log.txt”:保存调用日志信息

3、安装curl程序

下载地址:https://pan.baidu.com/s/13acW5HCatnhb1KPlzNSbYA, 解压压缩文件

47d7636ef2a8d46942a759ead0268ee5.png

将1(curl.exe)文件复制到C:\Windows\System32\目录下,将2(libiconv.exe)安装后,将安装路径添加到环境变量Path中 ,

C:\Program Files (x86)\GnuWin32\bin ,将上面curl表达式保存成批处理文件(SyncFuns.bat)

13f58ac08cbeae4dc3880c6700f3820e.png

4、创建window计划任务

1)创建基本任务

1.1)常规(选中圈中的的内容)

e5630f26b0a424d24f5c4bac6ad55ad3.png

1.2)触发器

新增触发器,选中重复任务间隔5分钟,持续时间为无限期

27e6e95a94b046fafb09e69fb238db17.png

1.3)操作

新增任务,选中批处理文件(SyncFuns.bat)

73784e6e900a224fd6227421e9244a77.png

1.4) 条件

电源记得去掉,如果电脑没插电源,计划任务不会触发

43008c7185937b897fec52aeb8357a55.png

5、启用计划任务

bf9dc583f76b1b8e302416fbcc2718c3.png

查看运行结果

d06c3e698fc27e7511ebba95d137f6a8.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值