Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)