问题描述
我正在处理一个自动发布脚本,我希望该脚本每1小时发布到我的博客(脚本1),然后使用另一个脚本定义发布对象(脚本2)。 因此,例如,我想使用脚本2创建15条帖子,但我不想同时发布全部15条帖子,我希望脚本1每小时检查是否有可用的帖子,即15条帖子中的1条。 因此,它们是2个不同的脚本,都分别运行,但是如何将脚本2创建的帖子添加到脚本1的队列中? 进入我脑海的一种方法是使用SQL数据库,脚本2将创建的帖子添加为数据库的最后一项,脚本1每小时读取一次数据库,选择第一项,然后从队列中删除。>
Script 1 pick and delete first item -----> ---- Post 0 ----
---- Post 1 ----
---- Post 2 ----
---- Post 3 ----
Script 2 add created post as last item --> ---- Post 4 ----
但是这种解决方案似乎有点困难,有没有更简单,更稳定的方法?
此外,如果脚本重新启动或服务器关闭,我希望它保存并保留数据。
解决方法
我能想到的最简单的方法是在数据库中再增加一列posted
,该列默认情况下设置为False
。脚本1发布后,它将列posted
更新为True
。
查询数据库时,您可以编写类似
的内容Select top 1 *
from post
where posted = false
,
您可以使用redis
队列并使用push
和pop
方法。
这比其他分贝好。