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方法
/// <summary>
/// 获取配送点列表(收货客户或送货客户)
/// </summary>
/// <param name="obj">传递数据</param>
/// <returns></returns>
[System.Web.Http.HttpPost]
public string GetDeliveryPointList([FromBody] JObject obj)
{
MobileResult result = myService.GetDeliveryPointList(obj);
return JsonConvert.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, 解压压缩文件
将1(curl.exe)文件复制到C:\Windows\System32\目录下,将2(libiconv.exe)安装后,将安装路径添加到环境变量Path中 ,
C:\Program Files (x86)\GnuWin32\bin ,将上面curl表达式保存成批处理文件(SyncFuns.bat)
4、创建window计划任务
1)创建基本任务
1.1)常规(选中圈中的的内容)
1.2)触发器
新增触发器,选中重复任务间隔5分钟,持续时间为无限期
1.3)操作
新增任务,选中批处理文件(SyncFuns.bat)
1.4) 条件
电源记得去掉,如果电脑没插电源,计划任务不会触发
5、启用计划任务
查看运行结果
C# 中web如何定时同步数据的更多相关文章
- Windows 之间用rsync同步数据(cwRsyncServer配置)
rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsyn ...
- SqlServer2008 跨服务器同步数据
最近工作中需要跨服务器同步数据,在数据库DB1中的表T1插入数据,同时触发T1的触发器(这里暂不讨论触发器的效率问题),向另一台服务器DB2中的相同的一张表T2插入数据,查看了一些资料说, 需要打开D ...
- solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
基本说明 Solr是一个开源项目,基于Lucene的搜索服务器,一般用于高级的搜索功能: solr还支持各种插件(如中文分词器等),便于做多样化功能的集成: 提供页面操作,查看日志和配置信息,功能全面 ...
- SSIS结合BCP及SQL Server作业实现定时将数据导出打包实现数据同步
首先这个流程要实现的功能大致是: 有两台服务器,一台是对外网开发的,一台是内网的.那么很明显数据交互都是外网服务器在做,而这个流程要做的就是要将外网上面的数据定时同步到内网中. 我们依对其中某张表的操 ...
- 不同服务器数据库之间的数据定时同步到sql server (支持mysql,oracle数据库同步到sql server)
1,在目标数据库新增服务器对象->连接到服务器->新建服务器连接 2,编写数据同步业务PROC ALTER PROC TestProc AS BEGIN --打开完全事物回滚 SET XA ...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
- 使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索
安装logstash.同步数据至ElasticSearch 为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/la ...
- Elasticsearch 2.3.2 从oracle中同步数据
Elasticsearch 2.3.2 从oracle中同步数据 1 数据批量导入-oracle 采用 elasticsearch-jdbc 插件 安装.版本需要ES版本一致 最新 ...
- elasticsearch -- Logstash实现mysql同步数据到elasticsearch
配置 安装插件由于这里是从mysql同步数据到elasticsearch,所以需要安装jdbc的入插件和elasticsearch的出插件:logstash-input-jdbc.logstash-o ...
随机推荐
- Jdbc -Statement
Java提供了 Statement.PreparedStatement 和 CallableStatement三种方式来执行查询语句: PreparedStatement是用于执行参数化查询 预编译s ...
- typeScript入门基础 (1)
1.ts是js的超集,可使用es5,es6的代码 2. ts的安装与编译: a. 首先需要Node.js环境 . 相信都有,略过. 不会的请百度,或者留言. b. npm install - ...
- adb shell命令后出现error: device not found错误提示
在cmd中输入adb shell进入linux shell环境前,需要把android模拟器打开(本文都是针对模拟器而言,并非真机).如果启动好了模拟器,且输入adb shell命令后出现error: ...
- ssh REMOTE HOST IDENTIFICATION HAS CHANGED!
连接到docker的时候,有时因为image重新buid过,就提示 It is also possible that a host key has just been changed. 不让连接. 解 ...
- 全排列问题(c语言实现)
问题描述: 假设有数组里面存放26个字母,取出n个,以m个排列,计算排列的总数! 注意: (1) m<n (2) 里面的元素不能重复排列 (3)"遇零则止" 核心代码如下: ...
- 大数据新手之路三:安装Kafka
Ubuntu16.04+Kafka1.0.0 1.下载kafka_2.11-1.0.0.tgz http://kafka.apache.org/downloads 2.解压到/usr/local/ka ...
- 第一个dubbo程序
Dubbo是一个高性能服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出和输入功能,和Spring框架可以无缝集成. 作为一个 ...
- 20165303 预备作业3 Linux安装及学习
=20165303 预备作业3 Linux安装及学习 安装虚拟机 按照http://www.cnblogs.com/rocedu/p/6012545.html步骤进行逐步操作,安装虚拟机. 遇到的问题 ...
- 解决IIS7虚拟目录出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题
今天在windows 7笔记本上搭建一个ASP.NET网络平台,启动IIS 7 时候出现错误: 错误摘要HTTP 错误 500.19 - Internal Server Error无法访问请求的页面, ...
- WAV和PCM文件转换的程序
using System;using System.IO;using System.Text;using System.Windows.Forms;using System.Runtime.Inter ...