scheduled tasks - Implement repeat interval of more than a day for parse.com background job -
i have created background job this:
parse.cloud.job("resetleaderboard", function(request, response) { parse.cloud.usemasterkey(); var query = new parse.query("leaderboard"); query.find( { success: function(results) { response.success("success!"); }, error: function(error) { response.error(error); } }) .then( function(results) { return parse.object.destroyall(results); }); }); i want run job every 15 days. there no option available @ www.parse.com set time interval more day.
i think need use time stamp , compare value current time. can show me standard way this?
you're right job scheduling ui constrained single day. way solve problem have job run daily, have nothing on 14 out of 15 runs. do-nothing runs wasteful, microscopically so, , parse paying bills anyway.
the specifics of solution depend on specific requirements. if require maximum control, 15 days down millisecond, starting @ millisecond-specific time, you'd need create scratch space in database state (in particular, date) prior run kept.
but job looks cleanup task, requirement of "very 15 days, beginning within 15 days" sufficient. simpler requirement, intuition correct simple date arithmetic work.
also, importantly, looks me intention find several objects in need of deletion, delete them. posted logic doesn't quite that. i've repaired logic error , cleaned promise handling well...
// schedule run daily using web ui parse.cloud.job("resetleaderboard", function(request, response) { if (dayofyear() % 15 === 0) { var query = new parse.query("leaderboard"); query.find().then(function(results) { parse.cloud.usemasterkey(); return parse.object.destroyall(results); }).then(function() { response.success("success!"); }, function(error) { response.error(error); }); } else { response.success("successfully did nothing"); } }); function dayofyear() { var = new date(); var start = new date(now.getfullyear(), 0, 0); var diff = - start; var oneday = 1000 * 60 * 60 * 24; return math.floor(diff / oneday); } the dayofyear function alex turpin, here
Comments
Post a Comment