• 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为低优先级的异步任务。

  • 相关阅读:
    [BZOJ2809][Apio2012]dispatching
    [BZOJ4584][Apio2016]赛艇
    [BZOJ3206][Apio2013]道路费用
    [codeforces551E]GukiZ and GukiZiana
    [BZOJ3809]Gty的二逼妹子序列
    [BZOJ3289]Mato的文件管理
    [BZOJ3052][UOJ#58][WC2013]糖果公园
    [SPOJ10707]Count on a tree II
    [BZOJ1086][SCOI2005]王室联邦
    python小知识
  • 原文地址:https://www.cnblogs.com/wangzhisdu/p/7766376.html
Copyright © 2020-2023  润新知