2012-02-08 28 views
-2

我想作为个人项目(我是学生)的代码在位于2个不同的服务器和数据库中的两个cms之间架起一座桥。两个cms之间的桥

例如电子商务cms和ERP:我只想同步让我们说'订单'表。

但表格架构不一样,所以我必须制作一个'兼容性'脚本来更新正确的相应字段。 假设已完成,我可以在两个方向同步2个表格:当ERP表格中写入新订单时,我可以在电子商务表格中添加订单。而在另一个方向也是如此。

但我需要执行我的脚本来实现此目的。 我可以将脚本放在cron作业中,以便在18时执行,但我希望数据能够实时同步。

这意味着在ERP表中添加新订单时,其他服务器上的电子商务表也会更新。而在另一个方向也是一样的。

我发现的唯一解决方案是解雇一些事件。当ERP表更新时,将启动一个脚本并更新电子商务表。当电子商务cms表更新时,将启动脚本并更新ERP表。

但是它需要两个脚本:一个在两边......我只想要一个脚本。

我该如何做到这一点?是否有方法/过程实时同步它们,只需在两侧中的一个中创建应用程序

+3

是啊,就像我们知道的CMS你使用的是什么。你读过FAQ了吗? http://stackoverflow.com/faq不那么久。我推荐它。在再次发帖之前阅读它。然后,再次尝试发布,并添加详细信息。您可以先告诉我们您使用的是两个CMS。我们不介意读者,你知道。 – Brad 2012-02-08 22:34:07

+0

sqlsync呢? http://silvercoders.com/en/products/sqlsync/ – 2012-02-08 22:48:53

回答

1

对两个CMS实例使用相同的数据库。

如果您没有这样做(或使用半实时数据库复制层),那么保持低延迟同步的唯一方法是基于事件的消息传递,就像您在帖子中描述的那样。

这是的不是有一个零延迟 - 你没有事务提交系统,所以有一个CMS做了一些事情之后,另一个看到它。这是否会导致你的问题取决于你的具体用例是什么。

同样,正确的做法是让两个前端共享一个后端。

+0

如果其他CMS是用不同的语言编码的,也许我不能为它编写一个插件:D所以也许正确的方法是只用一个脚本来做到这一点例如,每x小时启动一次。我不需要真正的实时,1小时的延迟是可以的。 – adieuuu 2012-02-08 23:05:35

+0

@ flo31一个小时的延迟很简单,运行同步脚本就可以。这远不及“实时” - 通常,“实时”意味着没有延迟。 “接近实时”通常是毫秒。 – Borealid 2012-02-08 23:09:20

+0

是的,实际上我想知道是否有办法实时做到这一点。但只是为了我个人的知识。我使用Joomla cms,并且我想创建一个可以同步一些Joomla组件和其他cms的组件。 – adieuuu 2012-02-08 23:13:28

1

如果您使用两种不同语言编写的CMS,那么您可以通过为两个CMS设置一个简单的REST API来解决这个问题。因此,当任何一个CMS更新时,都会发送一个呼叫到其他CMS API并发送更新请求。

我不知道,如果你正在使用预现有的CMS或者你滚你自己的,但你应该做的“rest API in PHP

1

有很多的问题与你提出什么使搜索这是不切实际的。您似乎想要在两个完全不同的CMS系统之间实时共享内容。每个从另一个挑选一个RSS将处理联合(但你必须处理仅仅是更新的更改,所以不仅仅是插入新内容的情况),但是这不会在服务器上实时执行。

这个世界充满了妥协,我认为你必须首先考虑牺牲了“实时”的要求.....