美文网首页
nameko中的定时器~nameko系列之四

nameko中的定时器~nameko系列之四

作者: andrew_su_cd | 来源:发表于2018-11-13 18:00 被阅读0次

定时操作是许多应用都需要使用的一个功能。
在python的web开发世界中,芹菜 celery是一个非常好的解决方案。工作原理是运行一个daemon,定期扫描redis或者库中的记录,然后执行相应的任务。

在nameko中,做定时会更加自然,在微服务类中的每个方法,都可以随时变成一个定时执行的工作狂。

from nameko.timer import timer
from nameko.rpc import rpc,RpcProxy

class ServiceA:
    name = "serviceA"
    serviceB = RpcProxy('serviceB')
    
    #采用定时器的方式调用另外微服务的方法
    @timer(5)
    @rpc
    def periodically_call_rpc_method(self):
        print(self.serviceB.provide_service_for_others()        

    #普通定时器
    @timer(10)
    def periodically_say_hello(self):
        print('I am a common timer')        

class ServiceB:
    name = 'serviceB'

    @rpc
    def provide_service_for_others(self):
        return 'hello,I am a rpc service for you'

说明:

  • ServiceA调用ServiceB的方法
  • 注意调用者的装饰器的顺序,先timer,后rpc。

相关文章

网友评论

      本文标题:nameko中的定时器~nameko系列之四

      本文链接:https://www.haomeiwen.com/subject/asawxqtx.html