首页 > 解决方案 > ConsoliBYTE QuickBooks PHP DevKit:两个队列,相同的 DSN,自动运行冲突

问题描述

在我开始更改代码之前,这是我们的 QWC 应用程序条目所做的......

  1. enqueueHOOK_LOGINSUCCESS通过QUICKBOOKS_ADD_CUSTOMER,QUICKBOOKS_ADD_INVOICEQUICKBOOKS_ADD_RECEIVEPAYMENT( ID order_number )在线订购
  2. enqueueCSV 数据在不同的HOOK_LOGINSUCCESSvia QUICKBOOKS_ADD_SALESORDER(ID 文件名)

两个队列使用相同的 dsn 并且在手动或单独自动运行时工作正常。当两个任务都自动运行并最终在同一分钟内执行时(不可避免),来自 #1 的函数映射会以某种方式与来自 #2 的函数映射混合在一起。

我们注意到这个问题是在 #2 期间抛出了错误No registered functions: CustomerAdd was throwed but the IDfrom #1. 所以看起来#2 建立了连接,但#1 在“同一分钟”冲突期间发送了请求/响应。

我们现在将两个任务安排为以不同的Every_Min间隔(24 和 25)自动运行,因此冲突不那么频繁,但宁愿完全没有冲突。

我在想deny_concurrent_logins(和/或deny_reallyfast_logins)处理程序选项应该阻止它们同时运行,但要在对繁忙的在线商店进行“可能”更改之前确定。

注意:我知道我们可以通过为每个任务使用不同的方法来避免这种情况dsn,但无法想象这是必要的。

标签: phpquickbooks

解决方案


推荐阅读