zoukankan      html  css  js  c++  java
  • lua-resty-gearman模块

    粘贴一段百度对gearman的解释:

    Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。

    lua-resty-gearman模块用于在lua中调用gearman

    github地址   https://github.com/zhhchen/lua-resty-gearman

    调用的代码样例:

    lua_package_path "/path/to/lua-resty-gearman/lib/?.lua;;";
    
    server {
        location /test {
            content_by_lua '
                local gearman = require "resty.gearman"
                local gm = gearman:new()
    
                gm:set_timeout(1000) -- 1 sec
    
                local ok, err = gm:connect("127.0.0.1", 4730)
                if not ok then
                    ngx.say("failed to connect: ", err)
                    return
                end
    
                ok, err = gm:submit_job("wc", "11111
    22222
    33333")  
                -- submit_job,submit_job_bg,submit_job_high,submit_job_high_bg,submit_job_low,submit_job_low_bg are supported
                -- submit_job(function_name, workload[, unique])
                
                if not ok then
                    ngx.say("failed to submit job: ", err)
                    return
                else
                    ngx.say(ok)                
                end
    
                -- put it into the connection pool of size 100,
                -- with 0 idle timeout
                local ok, err = gm:set_keepalive(0, 100)
                if not ok then
                    ngx.say("failed to set keepalive: ", err)
                    return
                end
    
                -- or just close the connection right away:
                -- local ok, err = gm:close()
                -- if not ok then
                --     ngx.say("failed to close: ", err)
                --     return
                -- end
            ';
        }
    }

    gearman提交工作时有多种方式:

    submit_job为普通的工作任务,client得到状态更新及通知任务已经完成的响应;

    submit_job_bg为异步的工作任务,client不关心任务的完成情况;

    submit_job_high为高优先级的工作任务;

    submit_job_high_bg为高优先级的异步任务;

    submit_job_low为低优先级的工作任务;

    submit_job_low_bg为低优先级的异步任务。

  • 相关阅读:
    HTML_严格模式与混杂模式
    不要和一种编程语言厮守终生:为工作正确选择(转)
    iOS开发编码建议与编程经验(转)
    UTF-8 和 GBK 的 NSString 相互转化的方法
    UICollectionView 总结
    UIViewController的生命周期及iOS程序执行顺序
    objective-c 中随机数的用法
    clipsToBounds 与 masksToBounds 的区别与联系
    网络请求 代码 系统自带类源码
    iOS CGRectGetMaxX/Y 使用
  • 原文地址:https://www.cnblogs.com/wangzhisdu/p/7766376.html
Copyright © 2011-2022 走看看