我从帖子中了解了编年史队列: Implementing a file based queue
这是我的用例:
基于上述用例,我有以下问题:
应使用多少个追加程序?多个线程共享一个追加程序,或者每个线程都有自己的追加程序?
queue.acquireAppender()是繁重的操作吗?我应该缓存附加程序,以避免调用AcquireAppender()吗?
如果由于某种原因服务器关闭,tailer能否记住上一次成功读取的条目并继续下一个条目? (例如磨石功能)
如何清除/删除旧文件?可以使用任何API进行清除吗?
另一个不相关的问题:
是否可以使用Chronicle-Queue来实现基于文件的BlockingQueue?
谢谢
利昂
答案 0 :(得分:0)
应使用多少个附加器?多个线程共享1个追加程序,或者每个线程都有自己的追加程序?
我建议您使用queue.acquireAppender(),它将根据需要创建Appender。
queue.acquireAppender()是否繁重的操作?我应该缓存附加程序,以避免调用AcquireAppender()吗?
它不是免费的,但要花费约100纳秒的时间。
如果由于某种原因服务器已关闭,tailer能否记住上一次成功读取的条目并继续下一个条目? (例如磨石功能)
我们建议将处理第一个队列的结果记录到另一个队列中。在此您可以记录最新索引。我们正在考虑使用此功能,而无需添加队列。
如何清除/删除旧文件?是否有任何API可以清除?
如果您在构建器上设置了'gui': {
'handlers': ['dev_logger'],
'level': 'INFO',
'propagate': True,
},
'gui': {
'handlers': ['apps_errors'],
'level': 'ERROR',
'propagate': True,
,则在不再需要文件时会收到通知。