Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis中的计划后执行_Redis_Scheduling - Fatal编程技术网

Redis中的计划后执行

Redis中的计划后执行,redis,scheduling,Redis,Scheduling,-用户可以准备文章,以便将来发布 所以 Post.PostState是PostState.Scheduled。 Post.PublishDate是FutureDate 当futuredate到来时,PostState将是PostState.Published 我如何在Redis中实现这一点 抱歉重复:我发现Redis的执行/调度延迟了 似乎答案将更多地与代码相关,而不是与db相关,所以 没有这样的计划,但您可以设置两个键的值,并在计划日期上设置过期日期。始终查找两个键并首选第一个键。当计划到期

-用户可以准备文章,以便将来发布

所以

Post.PostState是PostState.Scheduled。 Post.PublishDate是FutureDate

当futuredate到来时,PostState将是PostState.Published

我如何在Redis中实现这一点

抱歉重复:我发现Redis的执行/调度延迟了

似乎答案将更多地与代码相关,而不是与db相关,所以


没有这样的计划,但您可以设置两个键的值,并在计划日期上设置过期日期。始终查找两个键并首选第一个键。当计划到期时,您将返回实际值作为第一个(也是唯一一个)结果


您还可以将所有这些隐藏在lua脚本后面。

很抱歉,使用REDIS密钥过期进行调度将不起作用。 过期可以发生在以前,也可以发生在将来很长的时间(例如,取决于可用内存)


我认为您可能需要使用另一种工具来延迟执行,具体取决于您的开发平台。(例如轮询REDIS队列、linux cron、计时器等)

我不理解这个问题。对于某些模式,您可以找到面向代码和面向数据库的解决方案。例如:发布/订阅模式1)以代码为中心:,2)以数据库为中心。有一种调度机制的解决方案,如c#,我希望redis也有一种方法。。也许可以使用redis中的过期方法。