我们有一个通知,会使用应用程序终点将数据发布到应用程序。
//MARK: - SEARCH
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
if(!(searchBar.text?.isEmpty)!){
//reload your data source if necessary
self.collectionView?.reloadData()
}
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if(searchText.isEmpty){
//reload your data source if necessary
self.collectionView?.reloadData()
}
}
因此终点将保存mysql DB中的所有细节。
现在,在我们的模板中,我们调用另一个终点来获取我们在通知中使用webhook保存的详细信息。
notification ABC{
post = savedetailsurl
body = {{.|json}}
useBody = true
}
现在的问题是竞争条件。有时细节不会保存在后端(mysql)中,并且会调用getDetailsUrl。所以我们得到空的结果。
是否有办法解决竞争条件。
答案 0 :(得分:0)
博森的通知系统设计得非常基础。如果您想要更高级的东西,则需要使用单独的系统来生成通知详细信息和/或处理警报工作流程。有些人使用pagerduty或其他监控系统(如Shinken)来执行更高级的通知或警报管理。
您最好的选择是跳过内置通知并在外部系统中执行所有操作。您仍然可以使用http://bosun.org/api与各种警报状态(crit / warn / ack / close / etc)集成,或者您可以更改警报以使用log = true绕过所有内置状态并创建你自己的工作流程。