社区
基础编程
帖子详情
php如何异步实现数据更新
kennyw964
2011-03-17 03:49:11
我们现在做的网站系统要求所有的增删改数据操作都需要在CRM系统保持数据更新,也就是说,系统中涉及到跟业务有关的数据操作在系统本身的数据库中更改之后,同时也要调用CRM的webservice去更新CRM系统里的数据,如果用同步的方式去更新会使网站运行很慢(现在是这么处理的),一条数据需要进行两次数据库更新操作,客户要求使用异步的方式去更新,不能影响网站的正常运行,有没有合适的解决方案?
...全文
641
14
打赏
收藏
php如何异步实现数据更新
我们现在做的网站系统要求所有的增删改数据操作都需要在CRM系统保持数据更新,也就是说,系统中涉及到跟业务有关的数据操作在系统本身的数据库中更改之后,同时也要调用CRM的webservice去更新CRM系统里的数据,如果用同步的方式去更新会使网站运行很慢(现在是这么处理的),一条数据需要进行两次数据库更新操作,客户要求使用异步的方式去更新,不能影响网站的正常运行,有没有合适的解决方案?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ashchen
2011-03-23
打赏
举报
回复
恩 恐怕没那么简单,crm是只读的话就没问题了,单向同步后,如果被同步方修改了数据,会造成数据不一致
ddboy
2011-03-23
打赏
举报
回复
条件许可的, 使用队列服务器, 把要更新的东西放入队列,真正的操作,用另一个服务器对队列进行操作
kyzy_yy_pm
2011-03-22
打赏
举报
回复
这个一般不会用ajax方式,一般都是将重要的更新信息已sql语句的形式保存到数据库中,然后没隔一段时间其他服务器来读这个存sql语句的表来实现更新
winzer
2011-03-22
打赏
举报
回复
如果忽略楼上说的事务,web这边操作完,使用socket来做一个“异步”。
TR@SOE
2011-03-22
打赏
举报
回复
这个问题恐怕不那么简单。
从描述的情况看,如果从严格意义上来说,“同步”意味着两个异构数据库之间的事务必须同步,也就是说:网站数据库的CRUD提交事务,同时激发CRM数据库的对应的CRUD操作事务,只有这两个事务都成功,那么这两个事务才能各自commit,否则都必须回滚。
所以,我实在很怀疑你们的客户在提出这个要求的时候,是不是考虑到了这个问题的复杂性?而你们在和客户交流的时候,是不是也想到了这一层?
好吧,我们简单一些说。如果不考虑这个事务的问题,那么还要考虑两个数据库之间的主次。按照我的理解,网站应该是主,因为它先产生数据;CRM为次,因为它必须根据网站的数据来进行相应的操作。
基于这个前提,7L的方法应该是比较可行的。具体间隔将取决于客户对“实时性”的要求和定义。
当然,这个方法也无法解决两个数据库真正同步的问题。不过话再反过来说,我所提到的确实已经是非常极端的情况了。一般情况下,还是可以不考虑的。
fankys
2011-03-22
打赏
举报
回复
如果所有 CRM服务器 的数据 都源于 WEB服务器,那么主从数据库是个不错的选择。
不是的话自己写个API就搞定了
daly2008
2011-03-22
打赏
举报
回复
写个php脚本.在你当前系统中更新后,通过命令调用php脚本,转入后台自动更新crm中的数据.
不会影响你当前系统的时候.
kennyw964
2011-03-21
打赏
举报
回复
[Quote=引用 3 楼 hnxxwyq 的回复:]
话说,你对crm的控制权限有多高?
网站服务器 -> WEB, CRM服务器 -> CRM
1 如果让你随便整的话,很简单,WEB直接用fsockopen发送一个通知,就是我的数据有变更,而CRM接到请求时,立马做出响应,而后自己去向WEB请求真正的数据变更,web同步通知,CRM异步执行
2 增加数据更新任务队列,然后添加计划任务,WEB所做的更新都放到数据更新队列里面,……
[/Quote]
定时执行数据更新不大合适,按照第一种方法,能否直接在WEB端fsockopen发一个通知到后台去,然后直接在后台调用CRM的webservice去更新CRM系统的相关数据呢,这样会不会有什么瓶颈?我在这方面没什么经验。。
你说的WEB发通知,CRM来做响应,在去请求WEB端,这样感觉过程有点繁琐,而且还需要修改CRM系统的程序来处理,并且WEB端还没有接口让CRM系统来请求,你觉得呢?
lazyboy_wu
2011-03-18
打赏
举报
回复
话说,你对crm的控制权限有多高?
网站服务器 -> WEB, CRM服务器 -> CRM
1 如果让你随便整的话,很简单,WEB直接用fsockopen发送一个通知,就是我的数据有变更,而CRM接到请求时,立马做出响应,而后自己去向WEB请求真正的数据变更,web同步通知,CRM异步执行
2 增加数据更新任务队列,然后添加计划任务,WEB所做的更新都放到数据更新队列里面,而靠计划任务定时的将数据更新发送CRM
life169
2011-03-18
打赏
举报
回复
如果是linux主机可以考虑 把命令存入队列 定时执行
kennyw964
2011-03-17
打赏
举报
回复
[Quote=引用 1 楼 feng_lqwe 的回复:]
毫无疑问, ajax喽。。。
[/Quote]
这里用Ajax不合适吧,
Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。
feng_lqwe
2011-03-17
打赏
举报
回复
毫无疑问, ajax喽。。。
PHP
之
异步
处理
2.
实现
数据
顺序排列获取 redis 队列
实现
异步
处理的效果 <?
php
/** * 请求过来以后,如果
数据
过大,导致响应速度过慢,则可以先把要处理的
数据
保存到redis中, 然后直接去响应 */ //redis
数据
入队操作 $redis ....
echarts
异步
数据
加载和
更新
ECharts 中
实现
异步
数据
的
更新
非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具
异步
获取
数据
后通过 setOption 填入
数据
和配置项就行。 var myChart = echarts.init(document.getElementById('main'));
[WEB] 详解Ajax
实现
网页
数据
异步
更新
并实时自动刷新
本周在做STC大作业的时候,采集了开发板上的...故学习并记录Ajax
数据
更新
方法,当然还需要结合之前做H5游戏开发多子弹线程的经验,使用setInterval() 方法
实现
函数的循环定时回调,以
实现
数据
不断刷新的效果 Aja...
使用ssm框架 通过ajax
异步
提交
数据
具体
实现
方法
以前是一名
php
开发人员,最近公司开始一个java开发的erp项目,从新学起的感觉倍爽,各种问题各种遇到,从通过ajax
异步
提交
数据
具体
实现
方法这里开始,以后在博客上慢慢呈现,话不多说,下面就是我通过springMvc和...
think
php
6
实现
php
代码
异步
执行 (无需安装任何框架)
在
php
异步
执行代码就很尬尴,不像java 可以创建多线程,在
php
中也可以用pcntl_fork()
实现
创建子进程,来
实现
异步
,但这样可能会产生很多僵尸进程。其他的方式借助框架
实现
,如优秀的swoole框架,本文介绍无需安装...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章