def _unschedule(self, link: Link): """ Unschedule a link. :type link: :any:`Link` :param link: Link to be unscheduled """ if link.job is not None: link.job.remove() link.set_job(None)
def _schedule(self, link: Link): """ Schedule a link. Sets :any:`APS Job <apscheduler.job.Job>` as this link's job. :type link: :any:`Link` :param link: Link to be scheduled """ job = self._scheduler.add_job( link.transfer, trigger=IntervalTrigger(seconds=link.interval.total_seconds())) link.set_job(job)
def _schedule(self, link: Link): """ Schedule a link, setting a :class:`schedule.Job` as this link's job. :type link: :any:`Link` :param link: Link to be scheduled :raises: :class:`ScheduleIntervalError` if link's interval is smaller than the :any:`refresh interval`. """ if link.interval.total_seconds() < self._refresh_interval: raise ScheduleIntervalError( f'Link interval must be greater than or equal to refresh interval. Link interval: {link.interval.total_seconds()}s, Refresh interval: {self._refresh_interval}s' ) job = schedule.every(link.interval.total_seconds()).seconds.do( self._run_job, link) link.set_job(job)