RetryStrategy BuildRetryStrategy(FirebaseJobDispatcher dispatcher) { int policy = useLinearBackoffStrategy ? RetryStrategy.RetryPolicyLinear : RetryStrategy.RetryPolicyExponential; RetryStrategy retryStrategy; try { retryStrategy = dispatcher.NewRetryStrategy(policy, initialBackoffSeconds, maximumBackoffSeconds); } catch (Exception ex) { Log.Error(TAG, ex.ToString()); retryStrategy = null; } return(retryStrategy); }
private void ScheduleNotificationCheck() { try { FirebaseJobDispatcher dispatcher = this.CreatJobDispatcher(); Job job = dispatcher.NewJobBuilder() .SetService <PusteraScheduler>("notifJob") .SetRecurring(true) .SetLifetime(Lifetime.Forever) .SetRetryStrategy(dispatcher.NewRetryStrategy(RetryStrategy.RetryPolicyLinear, 30, 360)) .SetReplaceCurrent(false) .SetTrigger(Trigger.ExecutionWindow(Utils.HoursToSeconds(1), Utils.HoursToSeconds(1.5))) .Build(); dispatcher.Schedule(job); } catch (Exception bug) { Log.Debug("PUSTERA_LOG", bug.Message); } }