KUE JSON API не возвращает никаких данных - KUE с AWS Redis

Я использую Kue для постановки в очередь и обработки некоторых заданий Python с использованием узла Express. Я использую Redis-сервер не по умолчанию на localhost, а AWS Redis. Постановка проблемы: Соединение с AWS Redis прошло успешно, задания создаются и обрабатываются, выходные файлы генерируются, как и ожидалось, из заданий Python, однако API-интерфейс Kue JSON не возвращает никаких данных, если используется сервер AWS Redis. Api прекрасно возвращает данные, если его редис-сервер на localhost.

  1. Вот мой код подключения к Redis с узла

    const redisclient = redis.createClient({хост: имя хоста, порт: 6379});

    var kue = require ('kue'), queue = kue.createQueue ({префикс: 'q', redis: {порт: 6379, хост: имя хоста, опции: { disableSearch: false, client: redisclient } } }); // Redis соединение работает AWS

  2. Монтирование интерфейса Kue для Express

    var kueUiExpress = require ('kue-ui-express'); kueUiExpress (app, '/ kue /', '/ kue-api /'); app.use ('/ kue-api /', kue.app);

  3. Очередь заданий и обработка вызовов

    var suspendusershdl = queue.create('suspendusershdl', {username: currentuseremail, title: "Создать HDL-файл для приостановленных пользователей", inputfile: inputfilepathname, inputcoll: collname, outputfile: outputfilepathname, pythonscript: 'suspendusershdl.py' }); suspendusershdl.searchKeys( ['username'], 'username').save(); // индексация по имени пользователя

    suspendusershdl.on('complete', function(result){ console.log('Job is complete'); console.log('Job Details:', suspendusershdl); // Дополнительная логика после завершения задания});

    queue.process ('suspendusershdl', function (suspendusershdl, done) {// обработать задание, обрабатывая логику здесь});

  4. Вот что я вижу на данный момент. Если я зайду в Kue UI, все детали работы будут отображаться как положено.

Kue UI Детали работы отображаются как ожидалось

  1. Вот что я вижу на MONITOR в Redis-Cli для экземпляра AWS Redis.

    1524582499.883115 [0 172.31.31.246:53372] "incr" "q: ids" 1524582499.887225 [0 172.31.31.246:53372] "hset" "q: job: 3" "max_attempts" "1" 1524582499.887273 [0 172.31.31: 462] "sadd" "q:job:types" "suspendusershdl" 1524582499.887448 [0 172.31.31.246:53372] "hset" "q:job:3" "type" "suspendusershdl" 1524582499.887462 [0 172.31.31.246:53372] "hset" "q:job:3" "creation_at" "1524582499888" 1524582499.887470 [0 172.31.31.246:53372] "hset" "q:job:3" "promo_at" "1524582499888" 1524582499.887679 [0 172.31.31.246:53372] h " "q:job:3" "updated_at" "1524582499888" 1524582499.887951 [0 172.31.31.246:53372] "hset" "q:job:3" "priority" "0" 1524582499.888013 [0 172.31.31.246:53372] "zadd" "q:jobs" "0" "01|3" 1524582499.888069 [0 172.31.31.246:53372] "hset" "q:job:3" "data" "{\"username\":\"abc@company.com\",\"title\":\" Создать файл HDL для приостановки пользователей \",\"inputfile\":\"inputfilepathname",\"inputcoll\":\"suspendusers1524582499883\",\"outputfile\":\"outputfilepathname\",\"pythonscript\":\"приостановить usershdl.py\"}" 1524582499.889688 [0 172.31.31.246:53372] "hset" "q:job:3" updated_at" "1524582499890" 1524582499.889806 [0 172.31.31.246:53372] "multi" 1524582499.8898160:53372] "hset" "q:job:3" "state" "неактивно" 1524582499.889822 [0 172.31.31.246:53372] "zadd" "q:jobs:inactive" "0" "01|3" 1524582499.889829 [0 172.31.31.246:53372] "zadd" "q:jobs:suspendusershdl: неактивно" "0" "01|3" 1524582499.889836 [0 172.31.31.246:53372] "lpush" "q:suspendusershdl:jobs" "1" 1524582499.889844 [0 172.31.31.246:53372] "exec" 1524582499.941285 [0 172.31.31.246:53398] "инфо" 1524582499.941381 [0 172.31.31.246:53400] "инфо" 1524582499.941507 [0 172.31.31.246:53402] "инфо" 152452322322312322322322322322322312322322322322322322322322322322322322322322322322322322322322322322322322312322322322322322322322322322322322322322322322322322322322322 31.246: 53398] "выберите" "0" 1524582499.943340 [0 172.31.31.246:53398] "blpop" "q:suspendusershdl:jobs" "0" 1524582499.943541 [0 172.31.31.246:53400] "выберите" "0" 1524582499437 172.31.31.246:53402] "select" "0" 1524582499.944132 [0 172.31.31.246:53402] "publish" "q:events" "{\"id\":3,\"event\":\"enqueue\",\"args\":[\"enqueue\",\"suspendusershdl\"]}" 1524582499.945201 [0 172.31.31.246:53372] "multi" 1524582499.945211 [0 172.31.31.246:53372] "zrange" "q:jobs:suspendusershdl: неактивно" "0" "0" 1524582499.945220 [0 172.31.31.246:53372] "zremrangebyrank" "q:jobs:suspendusershdl: неактивно" "0" "0" 1524582499.945229 [0 172.31.31.246:53372] "exec" 1524582499.947129 [0 172.31.31.246:53402] "hgetall" "q:job:3" 1524582499.949203 [0 172.31.31.246:53372] "hset" "q:job:3" Start_at" "1524582499949" 1524582499.949298 [0 172.31.31.246:53372] "hset" "q:job:3" workerId" "kue:ip-172-31-31-246:10624:suspendusershdl:1" 1524582499.949467 [0 172.31.31.246:53372] "hset" "q:job:3" "updated_at" "1524582499950" 1524582499.949550 [0 172.31.31.246:53372] "multi" 1524582499.949563 [0 172.31.31.246:53372] "zrem" "q:jobs:inactive" "01|3" 1524582499.949570 [0 172.31.31.246:53372] "zrem" "q:jobs:suspendusershdl: неактивно" "01|3" 1524582499.949575 [0 172.31.31.246:53372] "hset" "q:job:3" "государственный" "актив e" 1524582499.949580 [0 172.31.31.246:53372] "zadd" "q:jobs:active" "0" "01|3" 1524582499.949596 [0 172.31.31.246:53372] "zadd" "q:jobs:suspendusershdl:active" "0" "01|3" 1524582499.949603 [0 172.31.31.246:53372] "zadd" "q:jobs:active" "0" "01|3" 1524582499.949608 [0 172.31.31.246:53372] "exec" 1524582499.951338 [0 172.31.31.246:53402] "publish" "q:events" "{\"id\":3,\"event\":\"start\",\"args\":[\"start\",\"suspendusershdl\",null]}" 1524582500.005064 [0 172.31.31.246:53372] "rpush" "q:job:3:log" " Файл успешно импортирован в MongoDB" 1524582500.005121 [0 172.31.31.246:53372] "hset" "q:job:3" "updated_at" "1524582500005" 1524582500.005188 [0 172.31.31.246:53372] "rpush" "q:job:3:log" "Calling Exec Python" 1524582500.005225 [0 172.31.31.246:53372] "hset" "q:job:3" "updated_at" "1524582500005" 1524582500.138182 [0 172.31.31.246:53390] "multi" 1524582500.138202 [0 172.31.31.246:53390] "zinterstore" "q:searchtmpkey" "3" q:search: слово:HLTMN" "q: поиск: слово:RSP" "q: поиск: слово:KM" 1524582500.138219 [0 172.31.31.246:53390] "zrevrange" "q:searchtmpkey" "0" "-1" 1524582500.138224 [0 172.31.31.246:53390] "zremrangebyrank" "q:searchtmpkey" "0" "-1" 1524582500.138230 [0 172.31.31.246:53390] "exec" 1524582500.620289 [0 172.31.31.246:53372] "rpush" "q:job:3:log" "suspendusershdl.py успешно завершен." 1524582500.620317 [0 172.31.31.246:53372] "hset" "q:job:3" updated_at" "1524582500620" 1524582500.620497 [0 172.31.31.246:53372] "hset" "q:job:3"duration" "672" 1524582500.620592 [0 172.31.31.246:53372] "hset" "q:job:3" "progress" "100" 1524582500.620684 [0 172.31.31.246:53372] "hset" "q:job:3" "updated_at" "1524582500621" 1524582500.620779 [0 172.31.31.246:53372] "multi" 1524582500.620792 [0 172.31.31.246:53372] "zrem" "q:jobs:active" "01|3" 1524582500.620799 [0 172.31.31.246:53372] "zrem" "q:jobs:suspendusershdl:active" "01|3" 1524582500.620806 [0 172.31.31.246:53372] "hset" "q:job:3" "state" "complete" 1524582500.620811 [0 172.31.31.246:53372] "zadd" "q:jobs:complete" "0" "01|3" 1524582500.620821 [0 172.31.31.246:53372] "zadd" "q:jobs:suspendusershdl:complete" "0" "01|3" 1524582500.620828 [0 172.31.31.246: 0 53372] "exec" 1524582500.622509 [0 172.31.31.246:53372] "hincrby" "q:job:3" попытки " "1" 1524582500.624102 [0 172.31.31.246:53402] "publish" "q:events" "{\"идентификатор \": 3, \ "событие \":\"complete\",\"args\":[\"complete\",null,null]}" 1524582500.624224 [0 172.31.31.246:53372] "incrby" "q:stats:work-time" "672" 1524582500.624382 [0 172.31.31.246:53398] "blpop" "q:suspendusershdl:jobs" "0" 1524582500.887372 [0 172.31.31.246:53400] "set" "Promotion: Lock" "U3dicEfREeiGI0kMM36BPg==" "PX" "2000" "NX" 1524582500.887552 [0 172.31.31.246:53400] "установить" "activeJobsTTL: блокировка" "U3eJgEfREeiGI0kMM36BPg==" "PX" "2000" "NX" 1524582500.889253 [0 172.31.31.246:5ys: zed "zide" zide: "3372c) "0" "1524582500889" "LIMIT" "0" "1000" 1524582500.889452 [0 172.31.31.246:53372] "zrangebyscore" "q:jobs:active" "100000" "1524582500890" "LIMIT" "0" "1000" 1524582500.892561 [0 172.31.31.246:53400] "script" "load" "- \n-- Удалить ключ, если содержимое равно \ n - \n-- KEYS 1 - ключ \n-- KEYS[2] - контент \ nlocal key = KEYS 1\ nlocal content = ARGV 1\ n \ nlocal value = redis.call ('get', key) \ n \ nif value == content затем \ n вернуть redis.call('del', key);\nend\n\nreturn 0\n"

  2. Все идет нормально. Теперь я вызываю JSON API для запроса всех заданий, запланированных пользователем.

    request ({'rejectUnauthorized': false, 'url': ' https://example.com/kue-api/job/search?q=' + currentuseremail, 'method': 'GET'}, функция (ошибка, ответ, body) { if (error) { console.log(error); res.json({ success: false, сообщение: 'Error', jobs: projectsfromkue}); } else { projectsfromkue = JSON.parse(body); консоль;.log ('Число процессов в kue для пользователя: ', processfromkue.length); res.json({ success: true, сообщение: 'Kue Jobs восстановлено', jobs:cessesfromkue}); // Этот вызов API всегда приводит к success и массив возвращаемых заданий пуст, хотя в БД и в пользовательском интерфейсе отображаются задания}});

Этот вызов API возвращает данные, если я использую redis по умолчанию на localhost.

Могу ли я что-нибудь сделать, чтобы JSON API возвращал данные из AWS Redis? Я не могу перейти на Prod, если мне нужно использовать redis-сервер на локальном хосте, и такое поведение JSON API сохраняется при подключении к AWS Redis.

Спасибо за вашу помощь.

0 ответов

Вы уверены, что ваш экземпляр Redis находится в том же VPC, что и ваш сервер Kue/Node?

Один из способов проверить подключение к aws redis - войти на сервер или сервер в том же VPC. Установите redis-cli и проверьте соединение.

Вы можете установить Redis-Cli с этими командами:

yum install libjemalloc1 libjemalloc-dev gcc make -y
cd /tmp
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
cp src/redis-cli /usr/local/bin/
chmod 755 /usr/local/bin/redis-cli

Повторно войдите, затем:

Тестирование соединения:

redis-cli -c -h REDIS.URL.cache.amazonaws.com -p 6379
Другие вопросы по тегам