openwhisk composer在执行并行合成时无法连接到redis服务器

gab6jxml  于 2021-06-07  发布在  Redis
关注(0)|答案(1)|浏览(327)

有人试过openwhisk composer.parallel()吗?
我的openwhisk操作似乎无法连接到redis服务器ive设置,
当我用composer.parallel()调用操作时,它抛出错误

"logs": [
        "2020-12-11T06:49:29.0983145Z   stdout: Entering composition[2]",
        "2020-12-11T06:49:29.09834Z     stdout: barrierId: 374ac5cc-44b1-49e5-8605-5398904d62cc, spawning: 2",
        "2020-12-11T06:49:29.0989087Z   stdout: { AbortError: LPUSH can't be processed. The connection is already closed.",
        "2020-12-11T06:49:29.0989191Z   stdout:     at handle_offline_command (/node_modules/redis/index.js:851:15)",
        "2020-12-11T06:49:29.0989227Z   stdout:     at RedisClient.internal_send_command (/node_modules/redis/index.js:885:9)",
        "2020-12-11T06:49:29.0989261Z   stdout:     at RedisClient.lpush (/node_modules/redis/lib/commands.js:58:25)",
        "2020-12-11T06:49:29.0989294Z   stdout:     at Promise (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:77:12)",
        "2020-12-11T06:49:29.0989328Z   stdout:     at new Promise (<anonymous>)",
        "2020-12-11T06:49:29.098936Z    stdout:     at RedisClient.t.(anonymous function) [as lpushAsync] (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:76:86)",
        "2020-12-11T06:49:29.098939Z    stdout:     at m (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:85:39)",
        "2020-12-11T06:49:29.0989422Z   stdout:     at Object.parallel (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:130:105)",
        "2020-12-11T06:49:29.0989483Z   stdout:     at $ (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:149:78)",
        "2020-12-11T06:49:29.0989534Z   stdout:     at Promise.resolve.then (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:154:59)",
        "2020-12-11T06:49:29.0989568Z   stdout:   command: 'LPUSH',",
        "2020-12-11T06:49:29.0989598Z   stdout:   code: 'NR_CLOSED',",
        "2020-12-11T06:49:29.0989631Z   stdout:   args: [ 'composer/fork/374ac5cc-44b1-49e5-8605-5398904d62cc', 42 ] }"
    ],
const composer = require('openwhisk-composer');

// complexwf.js
module.exports = composer.retain(
    composer.action('step-a', { action: function (params) {
        console.log('log-step-a', params);
        return { value: 'from-step-a' } 
    } }),
    composer.action('step-b', { action: function (params) { 
        console.log('log-step-b', params);
        return { value: 'from-step-b' } 
    } }),
    composer.parallel(
        composer.action('step-c', { action: function (params) { 
            console.log('log-step-c', params);
            return { value: 'from-step-c' } 
        } }),
        composer.action('step-d', { action: function (params) { 
            console.log('log-step-d', params);
            return { value: 'from-step-d' } 
        } }),
    )
);

关于我的设置,我的redis服务器运行在docker上,我已经尝试通过vscode中的redis explorer连接到我的redis服务器,并且正在工作,

v09wglhw

v09wglhw1#

为了使它能够工作,我将输入中的redisuri更改为容器ip而不是公共ip,因此输入如下

{
    "name": "complexwf",
    "params": {
        "$composer": {
            "openwhisk": {
                "ignore_certs": true
            },
            "redis": {
                "uri": "redis://172.17.0.2:6379"
            }
        },   
        "value": "from-input" 
    }
}

相关问题