如何为tarantool编写lua-daemon

如何为tarantool编写一个lua程序,以在后台定期执行某些任务(例如,每隔10分钟执行一次)?

点赞
用户6098274
用户6098274

第一种方式

使用fibers。Fibers是一组使用协作式多任务执行的指令。由fiber包管理的Fibers与用户提供的名为纤维函数的函数相关联。纤维具有三种可能的状态:运行,挂起或已死亡。

示例

fiber.create(function()
 while true do
   -- Let say you have space with tree index.
   -- Where each row index is timestamp + interval.
   -- So, here you can get lower/upper bound by current timestamp e.g.
   -- space:select{fiber.now()} -- get expired tasks
   fiber.sleep(1) -- interval
 end
end)

第二种方式

使用expirationd - https://github.com/tarantool/expirationd

2016-06-19 10:22:46