我们有一个购物车和购物车有排队项目,现在线项目可以是产品,折扣优惠券,奖励和促销。我正在寻找一些投入,在这里的设计考虑。后端在Rails中。
for products I have already designed the URL to be
post: cart/line_items to create a line item for product
put: cart/line_items/:id to update the quantity
delete: cart/line_items/:id to remove the product
现在,为了增加样本和去除样本,我正在考虑这样做
我有两个postgresql 11.4作为主节点和从节点运行。
我在主服务器中插入大量的数据,以看到它被复制到从服务器上。试图模拟下面的情况,
当有多个wal文件等待重放时,datapause_wal_replay 在从上插入巨大的wal文件,等待wal文件被发送到slavepromote上的
如果一个promote signal是在此时发出的,此时有多个wal --已经发送并等待重放,奴隶什么时候会提升自己?
重播所有现有的wal文件后的( shipped and waiting to be replayed或)
在接收到促进信号后立即发出。Without replaying the wal
我试图将一些商业案例映射到循环壁垒的使用上。假设我们有一个促销优惠正在进行,只有3个客户可以得到促销优惠。其余的人都不会得到这个提议。
为了映射这个场景,我使用了循环屏障。即使代码工作正常,我也不知道如何处理一些客户无法获得报价的场景。现在,我尝试使用具有超时值的await() API,这样我就可以捕获TimeoutException并让客户知道他无法利用促销服务。这导致了另一个等待线程的BarrierBrokenException。
我想知道,我们如何优雅地处理这些场景,以便选定的客户可以利用促销优惠,而那些谁不能遵循不同的代码路径。
我的密码-
public class CyclicBar
我正在开发销售推广系统,我刚刚踩到了一些可能可以用状态机模式处理的东西,但我还没有使用状态机的经验。也许状态机在这种情况下完全没有用:)所以我有一个促销活动,它有一些持续时间,一些指定的客户,产品,折扣等。每个促销活动也有它的状态。大概有5个州。状态之间的转换是严格定义的-不可能直接将状态1更改为状态3-用户必须首先将状态更改为2。有一些限制,比如“当促销处于3-5状态时,不可能添加更多的产品”。或者像“只有超级用户才能编辑处于3-5状态的促销费用”这样的限制。
我刚刚读到了,但我不确定对于这个案例来说它是否太复杂了。我可以在我的服务层中使用如下内容来处理状态逻辑:
if (promotion