0

我有一个要发送到 REST 服务器的 Observable。当连接失败时,我想永远重试发送。如果在连接失败期间,数据发生了变化,则应该发送新的数据。

我想我可以使用容量为 1 的 JobQueue 来实现这一点,并提供两种方法:forceEnqueue(Job job) 和 weakEnqueue(Job job)。现在,当连接失败时,作业可以尝试weakEnqueue() 本身。如果队列已满,则此操作失败。如果有新数据可用,则将其强制推入队列,从而消除可能已经入队的重试调用。

我无法使用 BlockingQueue 或 ConcurrentLinkedQueue 实现此行为。java中是否有一个线程安全的队列,可以支持这种要求,还是我试图以错误的方式解决这个问题?

4

0 回答 0