为什么有“ onOneServer”计划时需要memcache / redis?

时间:2019-05-10 15:52:38

标签: laravel scheduler

面对涉及多个运行同一个laravel应用程序的Web服务器的体系结构,就会出现可用性问题。

当涉及两台服务器时,其中只有一台应运行预定的作业。在这种情况下,您显然会使用onOneServer属性。

有关详细信息,请参见the laravel documentation on that matter

现在这是实际的问题:文档说

  

{note}要使用此功能,您的应用程序必须使用memcached或redis缓存驱动程序作为应用程序的默认缓存驱动程序。此外,所有服务器必须与同一中央高速缓存服务器通信。

我只是不明白为什么不能使用数据库后端来做到这一点。非常感谢您提供的任何提示。

干杯,托马斯

1 个答案:

答案 0 :(得分:1)

When Taylor introducedonOneServer()功能,他以这种方式进行了解释:

  

注意:使用此功能时,您将需要使用Redis或Memcached缓存驱动程序。 这些驱动程序提供保护该功能所需的锁所需的原子性。

您可以阅读有关distributed locking in redis的更多信息。我知道某些数据库驱动程序(例如 MySQL )也提供了锁定功能,因此我认为该功能也可能在这些功能上起作用。但是,到目前为止,它们尚未实现。