2016-02-20 3 views
3

Использование parse-server и heroku для моего приложения для Android. Хотите создать фоновые задания, такие как те, что предлагаются Parse.com ранее, но не могут заставить его работать. В парсер-сервера, например, папку, я добавил jobs.js файл, содержащий это:Фоновая работа с использованием parse-server & Heroku Scheduler

var Parse = require('parse/node'); 
Parse.initialize('my_app_id'); 
Parse.serverURL = 'https://random-name.herokuapp.com/parse'; 

function saveSomething(){ 
var obj = new Parse.Object('my_class', 'random'); 
obj.save(null, { 
    success: function(place){ 
     console.log("Success!!"); 
    }, 
    error: function(place, error){ 
     console.log("Fail: " + error.message); 
    } 
}); 
} 

function sayHello() { 
console.log('Hello'); 
} 

sayHello(); 
saveSomething(); 

SayHello() работает нормально, но saveSomething() получить «Ошибка: несанкционированный» сообщение, когда я бегу: Heroku выполните задание узла job.js. У меня есть 2 вопроса.

1.Is это det правильный способ создать фоновое задание с использованием синтаксического анализа & heroku?

2. Что-то не так с кодом «jobs.js»/что-то, что нужно сделать по-другому в целом для выполнения задания задания фона?

(Пробовал добавление JavaScript-ключ к Parse.initialize ('приложение-ид', 'JavaScript-ключ'), без какой-либо удачи)

+0

Если кому интересно, я написал статью, как получить фоновые задания с использованием 'kue': https://andreygordeev.com/2016/08/04/parse-background-jobs-on-parse-server.html –

ответ

6

Решения, чтобы добавить «Parse.Cloud.useMasterKey() ;» после строки «Parse.serverURL =« https://random-name.herokuapp.com/parse »и добавьте мастер-ключ приложений в« Parse.initialize («my_app_id», «js-key», «master-key»); для получения правильной авторизации.

var Parse = require('parse/node'); 
Parse.initialize('app-id', 'js-key','master-key'); 
Parse.serverURL = 'https://random-name.herokuapp.com/parse/'; 
Parse.Cloud.useMasterKey(); 

function saveSomething(){ 
var MyClass = Parse.Object.extend("MyClass"); 
var myclass = new MyClass(); 
myclass.set("columnName", "value"); 
myclass.save({ 
    success: function(place){ 
     console.log("Success!!"); 
    }, 
    error: function(place, error){ 
     console.log("Fail: " + error.message); 
    } 
}); 
} 

saveSomething(); 

Надеюсь, это поможет кому-то.

+1

и вам удалось заставить его работать с планировщиком героку? Моя функция работает с runk.js --app appName героя. Теперь я хотел бы использовать его с планировщиком Heroku, вы можете мне помочь? Что я должен написать на этой строке «$»? – Viny76

+1

Вам просто нужно написать «node jobs.js» в строке $, как если бы вы запускали его локально, так как вы просто запускаете его на другой машине. Затем вы можете просто установить свою частоту, а затем она будет работать. – Slagathor

+0

Большое вам спасибо !!! – Viny76

Смежные вопросы