面对涉及多个运行同一个laravel应用程序的Web服务器的体系结构,就会出现可用性问题。
当涉及两台服务器时,其中只有一台应运行预定的作业。在这种情况下,您显然会使用onOneServer
属性。
有关详细信息,请参见the laravel documentation on that matter。
现在这是实际的问题:文档说
{note}要使用此功能,您的应用程序必须使用memcached或redis缓存驱动程序作为应用程序的默认缓存驱动程序。此外,所有服务器必须与同一中央高速缓存服务器通信。
我只是不明白为什么不能使用数据库后端来做到这一点。非常感谢您提供的任何提示。
干杯,托马斯
答案 0 :(得分:1)
When Taylor introduced的onOneServer()
功能,他以这种方式进行了解释:
注意:使用此功能时,您将需要使用Redis或Memcached缓存驱动程序。 这些驱动程序提供保护该功能所需的锁所需的原子性。
您可以阅读有关distributed locking in redis的更多信息。我知道某些数据库驱动程序(例如 MySQL )也提供了锁定功能,因此我认为该功能也可能在这些功能上起作用。但是,到目前为止,它们尚未实现。