如何在Lagom中设计异步流?
面临的问题:在我们的产品中,我们有一个潜在客户汇总,其中包含一个用户ID(代表潜在客户的所有者),现在,用户有一个限制,即一个用户最多可以与此关联10个潜在客户。我们通过创建一个单独的服务ResourceManagement进行设计,当用户要求选择线索时,我们向LeadAggregate发送命令,该命令生成事件LeadPickRequested。在ProcessManager上,侦听事件并从ResourceManagement询问资源,在成功时,将命令发送到LeadAggregate-MarkAsPicked,然后在此向用户发送推导通知,指出已选择Lead,但是从构建UI角度来看,这非常困难,并且无法完成向第三方公开我们的API。
一个Sol。我们所做的是在服务上收到请求时,保存RequestID与Request Future。在Command中添加请求ID,并在LeadAggregate最终更改为Picked State或Picked Failure时,PM会侦听该事件,检查是否存在RequestFuture以获取请求ID,然后以正确的响应完成将来的操作。这样,它就可以作为最终用户的Sync API。
任何更好的Sol。为此
答案 0 :(得分:0)
如果要提供同步API,我只会看到两个选项:
login_url='https://www.life4laptop.com/index.php?route=account/login'
url='https://www.life4laptop.com/index.php?route=product/search&search=samsung'
list=[]
driver=webdriver.Chrome(crm_path, chrome_options=options)
driver.get(login_url)
elem = driver.find_element_by_id("input-email")
elem.clear()
elem.send_keys(x['life4laptop']['username'])
elem = driver.find_element_by_id("input-password")
elem.clear()
elem.send_keys(x['life4laptop']['password'])
elem = driver.find_element_by_xpath("//form/input[@type='submit']")
elem.click()
driver.get(url)
driver2=webdriver.Chrome(crm_path, chrome_options=options)
driver2.get(login_url)
elem = driver2.find_element_by_id("input-email")
elem.clear()
elem.send_keys(x['life4laptop']['username'])
elem = driver2.find_element_by_id("input-password")
elem.clear()
elem.send_keys(x['life4laptop']['password'])
elem = driver2.find_element_by_xpath("//form/input[@type='submit']")
elem.click()
driver2.get(url)
#driver.close()
#driver.quit()
创建逻辑,“最大10个潜在顾客”规则和用户潜在顾客列表位于同一汇总根中(提示:AR can spawn another AR )。权衡取舍取决于对所讨论的聚合的交易分析-在同一笔交易中从中读取它们会导致很多锁定和竞争情况吗?