繁体   English   中英

排队项目以发布到REST API

[英]Queuing items for POSTing to a REST API

我正在构建一个将CSV内容解析为多个“读数”的应用程序。 然后,将这些读数发布到REST API服务器,并将其添加到数据库中。

到目前为止,一切都很好(并且上面的方法正在工作)。 但是,我意识到服务器有时可能会出现连接问题(延迟,或者API由于某种原因而关闭)。

为了解决这个问题,我计划使用Sidekiq异步执行传输。 但是,我有两个问题:

  • 我最好先创建一个ActiveJob来执行发布,然后在解析CSV时才将其排队吗? 我猜想,如果出现连接问题,它最终会以与添加它们相同的顺序恢复吗?

  • 我需要告诉Sidekiq“重试”该工作,还是会自动发生?

  • 最后,由于Sidekiq使用Redis,应该启用持久性,以便如果应用服务器在队列中有项目时崩溃而不会丢失?

还有什么要考虑的吗? 还是解决这个问题的更好方法?

有两种情况

1)您将把CSV文件的完整处理放在Job上,在这种情况下,我认为它将无法完美运行,因为如果Job失败,它将再次遍历所有行。 除非您通过在CSV中添加另一列将行标记为已读。

2)在Sidekiq中将每一行添加为单独的Job,我只能认为这样做的缺点是,如果您拥有大量CSV文件,最终可能会创建过多的Job,但是这样做会节省大量的CSV处理侧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM