系统app_m1p运行过程:
客户端:将要调用的命令和参数打包,通过tcp发送到消息队列中。等待返回
服务端: 1.初始化消息队列,共享内存。 2.将函数注册,就是把函数的调用名等东西写入共享内存中,等待调用。 3.服务端在消息队列中取出一条请求,拆分出来,在共享内存中取出相应的函数,并调用之。 4.返回数据直接打包,再写入消息队列中。
ps: 该系统中并没有考虑进程或者是线程中的并行。主要是因为作为运营系统,主要面向的是营业厅这样的场所,用户量不是很大。而且每个函数的处理时间都不会很长。
当前使用gearman的系统运行过程:
客户端:将要调用的命令和参数打包,通过tcp发送到gearman客户端。等待返回
服务端: 1.将函数注册,就是把函数的调用名等东西直接通过gearman的函数写入,同时保留一份备份写入共享内存中,具体的和上面一种形式一样。等待调用。 2.而服务端怎么样实现也可以不管,这都是直接启动gearman运行等待。函数配置完成后客户端可以直接得到服务器端返回的数据。 具体实现方面比上面一种系统的实现简单很多,因为我们可以不用多管排队调用等方面的问题,只需要关心业务方面的问题即可。