情况
用户可以上传文档,队列消息将被放置到带有文档 ID 的队列中。Worker Role 会选择这个并获取文档。用 Lucene 完全解析它。解析完成后,应该更新 Webrole 上的 Lucene IndexSearcher。
在 Web 角色上,我保留了一个静态的 Lucene IndexSearcher,因为否则您必须为每个搜索请求创建一个新的 IndexSearch,这会产生很多开销等。
我想要做的是从 Worker Role 向 Web Role 发送通知,通知他需要更新他的 IndexSearcher。
可能的解决方案
- 制作某种通知队列。Web 角色启动了一个无休止的任务,不断检查通知队列。如果他找到一条消息,那么他应该更新 IndexSearch。
- 在 Worker 角色上启动 WCF 服务并与 Web 角色连接。从 Worker Role 进行回调,并通过 Service 告诉 Web Role 他需要更新他的 IndexSearcher。
- 只需定期更新它
什么是最好的解决方案,或者还有其他解决方案吗?
非常感谢 !