Использование kue-scheduler с ParseServer на Heroku

При запуске kue-scheduler на heroku с плагином heroku redis, несмотря на то, что я могу заставить задания kue работать, кажется, что kue-scheduler требует определенной конфигурации redis, не разрешенной в среде heroku redis. Кто-нибудь успешно запускал kue-scheduler в среде Heroku. Вот начало моего файла index.js:

var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var path = require('path');

var kue = require('kue-scheduler')
var queue = kue.createQueue({redis:
        'redis://h:***************@ec2-**-19-83-130.compute-1.amazonaws.com:23539'
        });

var job = queue.create('test', {
    title: 'Hello world'
  , to: '[email protected]'
  , template: 'welcome-email'
}).save( function(err){
   if( !err ) console.log( job.id );
});

job.log('$Job %s run', job.id);

queue.every('30 seconds', job);

queue.process('test', function(job, done){
  test_function(job.data.title, done);
});

function test_function(title, done) {
  console.log('Ran test function with title %s', title)
  // email send stuff...
  done();
}

И вот ошибка.

2016-07-21T00:46:26.445297+00:00 app[web.1]: /app/node_modules/parse-server/lib/ParseServer.js:410
2016-07-21T00:46:26.445299+00:00 app[web.1]:             throw err;
2016-07-21T00:46:26.445300+00:00 app[web.1]:             ^
2016-07-21T00:46:26.445417+00:00 app[web.1]: ReplyError: ERR unknown command 'config'
2016-07-21T00:46:26.445419+00:00 app[web.1]:     at parseError (/app/node_modules/redis-parser/lib/parser.js:161:12)
2016-07-21T00:46:26.445420+00:00 app[web.1]:     at parseType (/app/node_modules/redis-parser/lib/parser.js:222:14)
2016-07-21T00:46:26.466188+00:00 app[web.1]:

Насколько я могу судить, проблема в том, что heroku redis не разрешает параметры конфигурации в своей инфраструктуре Redis.

Если кто-то имел успех, благодарен за любые предложения.


person silverdagger    schedule 21.07.2016    source источник
comment
В частности, эту проблему мне удалось решить с помощью: var Queue = kue.createQueue({ redis: 'redis://x:[email protected]:23539', skipConfig: true } ); Однако повторяющиеся задачи, похоже, не запускаются.   -  person silverdagger    schedule 21.07.2016
comment
Вам пришлось создать worker дино, чтобы вся эта установка заработала?   -  person Mohammad Abdurraafay    schedule 30.08.2016
comment
Кажется, я заметил несоответствия в настройке, которую вы установили с skipConfig:true. Не могли бы вы проверить поведение, как ожидалось?   -  person Mohammad Abdurraafay    schedule 30.08.2016


Ответы (2)


удалось решить это:

var queue = kue.createQueue(
                {redis: 'redis://[email protected]:23539',
                 skipConfig: true
                });

Просто нужен параметр skipConfig

person silverdagger    schedule 22.07.2016
comment
Вы в конечном итоге заставили повторяющиеся задачи работать? У меня аналогичная настройка, ошибок нет, но задачи не запускаются. - person Tys; 01.02.2017

У меня была та же проблема, и я не смог заставить kue-scheduler работать над Heroku-Redis. Чтобы решить эту проблему, я использовал надстройку Heroku Redis Cloud.

Это позволяет вам установить требуемый флаг Redis notify-keyspace-events, который нельзя изменить в обычном дополнении Heroku-Redis. Чтобы установить этот флаг:

  1. Добавить надстройку Redis Cloud heroku
  2. Перейти на страницу настроек героку
  3. Показать переменные конфигурации в переменных конфигурации
  4. Скопируйте REDISCLOUD_URL, должно быть что-то вроде redis://rediscloud:[email protected]:PORT_NUMBER
  5. В терминале введите redis-cli -h xxx.redislabs.com -p PORT_NUMBER -a PASSWORD с переменными из REDISCLOUD_URL
  6. После подключения введите config set notify-keyspace-events Ex
  7. Вы можете убедиться, что он установлен правильно, введя config get notify-keyspace-events
  8. Обязательно обновите код JavaScript, чтобы он указывал на новый REDISCLOUD_URL при вызове kue.createQueue().

спасибо @josephktcheung за их работу, хотя здесь: https://github.com/lykmapipo/kue-scheduler/issues/46

person Tys    schedule 01.02.2017