【问题标题】:Cannot trap exceptions from Gearman Client instantiation无法从 Gearman 客户端实例中捕获异常
【发布时间】:2013-08-13 06:26:49
【问题描述】:

连接到 gearman 守护进程时,如果守护进程 url 或端口不正确,无法进行连接,则会引发异常:

      File "/usr/lib/python2.7/dist-packages/gearman/client.py", line 205, in establish_request_connection
    raise ServerUnavailable('Found no valid connections: %r' % self.connection_list)

gearman.errors.ServerUnavailable: Found no valid connections: [<GearmanConnection localhost:4700 connected=False>]

我想捕捉异常并优雅地处理它,但下面的代码并没有这样做。显示异常和回溯,就好像我没有尝试捕获异常一样。

生成并尝试捕获异常的代码是:

import gearman
from gearman.errors import ConnectionError, InvalidAdminClientState, ServerUnavailable
try:
    gmClient = gearman.GearmanClient(['localhost:4730'])
except gearman.errors.ServerUnavailable, e:
# I've also tried except ServerUnavailable, e: - same result.
    print(e)

如何正确捕获 gearman 客户端连接异常?

【问题讨论】:

    标签: python-2.7 python-gearman


    【解决方案1】:

    当您尝试提交作业时会引发 ServerUnavailable 异常。试试这个:

    import gearman
    
    gmClient = gearman.GearmanClient(['localhost:4700'])
    
    try:
        request = gmClient.submit_job('reverse', 'Hello World!')
    except gearman.errors.ServerUnavailable, e:
        print("caught ServerUnavailable")
    

    【讨论】:

    • 我在某些任务中遇到了同样的错误。为什么我会收到此错误?是因为负载吗?我使用 supervisord 来运行 4 个工人。
    猜你喜欢
    • 2023-03-30
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多