2016-08-18 5 views
0

С vsivsi:job-collection, я создал задания вроде the example, но разница в том, что мои задания обрабатываются на сервере. И я не вижу, чего не хватает по сравнению с примером приложения, которое обрабатывает задания на клиенте.Метеоритная работа-сборка не работает Удаленные задания

lib/db.coffee

@ParsingJobs = JobCollection('parsing', { 
    workTimeout: 10000 
    transform: (d) -> 
     try 
      res = new Job(ParsingJobs, d) 
     catch e 
      res = d 
     return res 
}) 

if Meteor.isServer 
    Meteor.startup(-> 
     ParsingJobs.allow({ 
      admin: (user_id, method, params) -> 
       # commented temporarily Roles.userIsInRole(Meteor.user(), ['admin']) 
       true 
     }) 

     ParsingJobs.startJobServer() 

server.coffee

que = ParsingJobs.processJobs('parsing', {workTimeout: 10000}, (job, cb) -> 
    # do some processing 
    job.done('success') 
    cb() 

ParsingJobs.find({type: 'parsing', status: 'ready'}).observe 
    added: -> 
     que.trigger() 

On the client I can just run a shell command:

x = ParsingJobs.find().fetch()[0] 
x.rerun() 

Результат:

job_class.js:16 Uncaught Error: Job remote method call error, no valid invocation method found.

Что я делаю неправильно?

ответ

1

Изменить эту строку:

que = ParsingJobs.processJobs('parsing', {workTimeout: 10000}, (job, cb) -> 

к этому:

que = Job.processJobs('parsing', {workTimeout: 10000}, (job, cb) ->