Beispiel #1
0
 def jobs(self):
     trigger = CronTrigger(minute='*/15')
     job = (trigger, self.send_news_async)
     return (job,)
Beispiel #2
0
def autosave(sched):
    sched.add_job(commit,CronTrigger(second=0))
Beispiel #3
0
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.combining import OrTrigger
from apscheduler.triggers.cron import CronTrigger
from django_apscheduler.jobstores import DjangoJobStore
from django_apscheduler.jobstores import register_events
from django_apscheduler.jobstores import register_job
from django.core.management import call_command


scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")


every_3_hours_trigger = OrTrigger([
    CronTrigger(hour=hour)
    for hour in range(0, 24, 3)
])


@register_job(scheduler, every_3_hours_trigger, replace_existing=True)
def update_games():
    print('Starting: update_games')
    call_command('update_games')
    print('Done: update_games')


def start_scheduler():
    if scheduler.state == 0:
        register_events(scheduler)
        scheduler.start()
        print('Started scheduler.')
Beispiel #4
0
def get_auth_key():
    file = open('auth-key.txt', 'r')
    key = file.readline()

    return key


def loop_task(threshold):
    toaster = ToastNotifier()

    auth_key = get_auth_key()
    json_result = get_realtime_data(auth_key)
    bike_cnt = parsing_data(json_result)

    if bike_cnt < threshold:
        toaster.show_toast("현재 따릉이 " + str(bike_cnt) + "개 남았습니다.", "바로 대여하세요.")


bike_low_cnt = int(input("몇 대 이하인 경우 알람을 울릴까요?\n"))
set_hour = input("어느 시간 대에 알람을 활성화 할까요? ex) 0-23\n")
set_second = "*/" + str(input("몇 초 주기로 알려드릴까요?\n"))

trigger = CronTrigger(hour=set_hour, second=set_second)
scheduler.add_job(loop_task, trigger, args=[bike_low_cnt])

while True:
    pass
"""
https://lemontia.tistory.com/508
https://towardsdatascience.com/how-to-make-windows-10-toast-notifications-with-python-fb3c27ae45b9
"""
Beispiel #5
0
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
import time

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from Jobspider.spiders.job_test import Jobpythonspider


def crawl(crawler, spider):
    crawler.crawl(spider)
    crawler.start()


if __name__ == '__main__':
    settings = get_project_settings()
    crawler = CrawlerProcess(settings)
    spider = Jobpythonspider()
    scheduler = BackgroundScheduler()
    scheduler.daemonic = False
    cron = CronTrigger(second='*/30')
    scheduler.add_job(crawl, cron, args=[crawler, spider])
    scheduler.start()
    while True:
        time.sleep(1000)
Beispiel #6
0
def addScheduleByDateHourMinute(desc, timezone, user):
    scheduler.add_job(send_reminder,
                      CronTrigger(start_date=timezone, end_date=timezone),
                      args=(desc, user))
Beispiel #7
0
if os.path.exists(h_l_pot_info_url):
    try:
        with open(h_l_pot_info_url, 'rb') as f:
            h_l_pot_info = pickle.load(f)

            if len(h_l_pot_info) != len(stk_list):
                updatePotInfo()
    except:
        updatePotInfo()
else:
    updatePotInfo()


sched = BlockingScheduler()
trigger = OrTrigger([
    CronTrigger(hour='9', minute='31-59/5'),
    CronTrigger(hour='10', minute='*/5'),
    CronTrigger(hour='11', minute='1-29/5'),
    CronTrigger(hour='13-15', minute='*/5')

])
sched.add_job(judgeAndSendMsg,
              trigger,
              day_of_week='mon-fri',
              minute='*/5',
              max_instances=10)

sched.add_job(func=updatePotInfo, trigger='cron', day_of_week='mon-fri', hour=5, minute=30, misfire_grace_time=3600, coalesce=True)
# sched.add_job(updatePotInfo,
#               'cron',
#               max_instances=10,
Beispiel #8
0
import logging

from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.cron import CronTrigger

from wfh.display.constants import INTERVAL, START_TIME, END_TIME
from wfh.display.inky_utils import update_inky

logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',
                    level=logging.DEBUG)

scheduler = BlockingScheduler()

if __name__ == "__main__":
    scheduler.add_job(update_inky)
    scheduler.add_job(
        update_inky,
        CronTrigger(minute=f'0/{INTERVAL}',
                    hour=f'{START_TIME}-{END_TIME}',
                    day='*',
                    month='*',
                    day_of_week='0-4'))
    scheduler.start()
Beispiel #9
0
import random

from apscheduler.triggers.cron import CronTrigger

# =========================  这一部分需要修改  =========================
ID = '0123465789'
RULES = {
    '体温': lambda: str(random.choice([t/10 for t in range(360, 371)])),
    '是否有发烧': '是或者否',
    '所在位置': '填所在位置即可。引号内的所有内容都会作为答案提交',
}
# ======================================================================

RETRY_TIMES = 5
RETRY_INTERVAL = 10
TRIGGER = CronTrigger(hour='5,18', minute=5)
ERROR_CALLBACK = lambda _: None  # noqa
Beispiel #10
0
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.combining import OrTrigger
from apscheduler.triggers.cron import CronTrigger
import urllib.request

sched = BlockingScheduler()

# @sched.scheduled_job('cron', day_of_week='mon-fri', minute='*/1')
def scheduled_job():
    url = "https://linebothook.herokuapp.com/"
    conn = urllib.request.urlopen(url)
        
    for key, value in conn.getheaders():
        print(key, value)

trigger = OrTrigger([
   CronTrigger(hour='10-20', minute='*/25')
])

sched.add_job(scheduled_job, trigger)
sched.start()
Beispiel #11
0
from flask import Flask, url_for, request, redirect, render_template
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger

sched = BackgroundScheduler()
trigger = CronTrigger(hour='0', minute='5')
app = Flask(__name__)
app.config.from_object('config')

# db = SQLAlchemy(app)
from app import views
sched.start()
Beispiel #12
0
#
# while True:
#     schedule.run_pending()
#     time.sleep(1)


#
# for i in spotify:
#     data = [i['name'], "album", i['playcount']]
#     sheet.append(data)
#
# sheet.insert_cols(idx=4)
# sheet["C59"] = "=SUM(C2:C58)"

# workbook.save(filename="ATEEZChartData.xlsx")


def daily():
    sheet()
    sortedsheet()
    formattedsheet()
    wb.save(filename="ATEEZChartData.xlsx")
    myFile = open('append.txt', 'a')
    myFile.write('\nAccessed on ' + str(datetime.datetime.now()))


if __name__ == "__main__":
    scheduler = BlockingScheduler()
    scheduler.add_job(daily, CronTrigger(minute="4", hour="23"))

    scheduler.start()
Beispiel #13
0
    def run_monthly(
        self,
        callback: Callable[['CallbackContext'], None],
        when: datetime.time,
        day: int,
        context: object = None,
        name: str = None,
        day_is_strict: bool = True,
        job_kwargs: JSONDict = None,
    ) -> 'Job':
        """Creates a new ``Job`` that runs on a monthly basis and adds it to the queue.

        Args:
            callback (:obj:`callable`):  The callback function that should be executed by the new
                job. Callback signature for context based API:

                    ``def callback(CallbackContext)``

                ``context.job`` is the :class:`telegram.ext.Job` instance. It can be used to access
                its ``job.context`` or change it to a repeating job.
            when (:obj:`datetime.time`): Time of day at which the job should run. If the timezone
                (``when.tzinfo``) is :obj:`None`, the default timezone of the bot will be used.
            day (:obj:`int`): Defines the day of the month whereby the job would run. It should
                be within the range of 1 and 31, inclusive.
            context (:obj:`object`, optional): Additional data needed for the callback function.
                Can be accessed through ``job.context`` in the callback. Defaults to :obj:`None`.
            name (:obj:`str`, optional): The name of the new job. Defaults to
                ``callback.__name__``.
            day_is_strict (:obj:`bool`, optional): If :obj:`False` and day > month.days, will pick
                the last day in the month. Defaults to :obj:`True`.
            job_kwargs (:obj:`dict`, optional): Arbitrary keyword arguments to pass to the
                ``scheduler.add_job()``.

        Returns:
            :class:`telegram.ext.Job`: The new ``Job`` instance that has been added to the job
            queue.

        """
        if not job_kwargs:
            job_kwargs = {}

        name = name or callback.__name__
        job = Job(callback, context, name, self)

        if day_is_strict:
            j = self.scheduler.add_job(
                callback,
                trigger='cron',
                args=self._build_args(job),
                name=name,
                day=day,
                hour=when.hour,
                minute=when.minute,
                second=when.second,
                timezone=when.tzinfo or self.scheduler.timezone,
                **job_kwargs,
            )
        else:
            trigger = OrTrigger([
                CronTrigger(
                    day=day,
                    hour=when.hour,
                    minute=when.minute,
                    second=when.second,
                    timezone=when.tzinfo,
                    **job_kwargs,
                ),
                CronTrigger(
                    day='last',
                    hour=when.hour,
                    minute=when.minute,
                    second=when.second,
                    timezone=when.tzinfo or self.scheduler.timezone,
                    **job_kwargs,
                ),
            ])
            j = self.scheduler.add_job(callback,
                                       trigger=trigger,
                                       args=self._build_args(job),
                                       name=name,
                                       **job_kwargs)

        job.job = j
        return job
Beispiel #14
0
def start_scheduler():
    trigger = CronTrigger(day_of_week='mon-sun', hour='9-18', minute='45')
    scheduler.add_job(job_brush_flow, trigger)  # 根据需要进行设置
    scheduler.start()
Beispiel #15
0
    driver.find_element_by_xpath(
        '//*[@id="mainM"]/div/div/div/div[1]/div[2]/div/div[3]/div[2]').click(
        )  #点击我的表单

    sleep(3)
    driver.find_element_by_xpath(
        '//*[@id="select_1582538939790"]/div/div').click()  #更改表单内容
    driver.find_element_by_xpath('/html/body/div[8]/ul/div/div[3]/li').click()
    driver.find_element_by_xpath(
        '/html/body/div[1]/div/div/div/div/div[2]/div[1]/div/div/span/span'
    ).click()  #点击确定

    confirm = driver.switch_to.alert  #处理confirm弹出框
    confirm.accept()  #点击confirm的确定按钮

    sleep(3)
    driver.quit()


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    intervalTrigger = CronTrigger(hour=9, minute=15)
    scheduler.add_job(job, intervalTrigger, id='my_job_id')
    try:
        scheduler.start()
        print('启动成功')
    except:
        with open('日志.txt', 'w', encoding='utf8') as file:
            file.write('%s 发生错误' % datetime.now())
Beispiel #16
0
    def __init__(self, bot):
        self.bot = bot

        self.message = "playing @Doob help | {users:,} members in {guilds:,} servers. Version - {VERSION}"

        bot.scheduler.add_job(self.set, CronTrigger(second=0))
Beispiel #17
0
    'user': '******',
    'password': '******',
    'charset': 'utf8'
}

db_name = 'stk_opt_info'

table_history = 'history'
table_now = 'now'
""" =========================== 定时器相关 ============================ """
sched = BlockingScheduler()

# schedfortest = BlockingScheduler()

trigger = OrTrigger([
    CronTrigger(hour='9', minute='31-59/3'),
    CronTrigger(hour='10', minute='*/3'),
    CronTrigger(hour='11', minute='1-29/3'),
    CronTrigger(hour='13-14', minute='*/3')
])

trigger_RT = OrTrigger([
    CronTrigger(hour='9', minute='31-59', second='*/30'),
    CronTrigger(hour='10', minute='*', second='*/30'),
    CronTrigger(hour='11', minute='1-29', second='*/30'),
    CronTrigger(hour='13-14', minute='*', second='*/30')
])

# trigger2public = OrTrigger([
#     CronTrigger(hour='9', minute='31-59/15'),
#     CronTrigger(hour='10', minute='*/15'),
def shedulers_obj(scheduler):
    from django.utils import timezone
    now = timezone.now()
    print(now)
    date = datetime.now() + timedelta(seconds=5)
    # starter()
    scheduler.add_job(
        starter_youtube_parse,
        trigger=CronTrigger(hour=date.hour,
                            minute=date.minute,
                            second=date.second,
                            day_of_week=date.weekday()),
        id="my_job",
        max_instances=1,
        replace_existing=True,
    )

    scheduler.add_job(
        api_getter_starter_v3,
        trigger=CronTrigger(hour='*/4'),
        id="subs_job",
        max_instances=1,
        replace_existing=True,
    )

    scheduler.add_job(
        starter_getter_info,
        trigger=CronTrigger(hour=date.hour,
                            minute=date.minute,
                            second=date.second),  # Every 10 seconds
        id="my_tob",  # The `id` assigned to each job MUST be unique
        max_instances=1,
        replace_existing=True,
    )
    date = date + timedelta(seconds=5)
    scheduler.add_job(
        interval_job,
        trigger=CronTrigger(hour=date.hour,
                            minute=date.minute,
                            second=date.second + 10),  # Every 10 seconds
        id="pre_interval_job",  # The `id` assigned to each job MUST be unique
        max_instances=1,
        replace_existing=True,
    )

    scheduler.add_job(
        interval_job,
        trigger=CronTrigger(hour="*/1"),  # Every 10 seconds
        id="interval_job",  # The `id` assigned to each job MUST be unique
        max_instances=1,
        replace_existing=True,
    )

    scheduler.add_job(
        executor,
        trigger=CronTrigger(hour=date.hour,
                            minute=date.minute,
                            second=date.second),  # Every 10 seconds
        id="my_tob",  # The `id` assigned to each job MUST be unique
        max_instances=1,
        replace_existing=True,
    )
    scheduler.add_job(
        upload_starter,
        trigger=CronTrigger(minute="*/30"),  # Every 10 seconds
        id="my_tob",  # The `id` assigned to each job MUST be unique
        max_instances=1,
        replace_existing=True,
    )
Beispiel #19
0
# encoding=utf-8
import pickle
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.triggers.combining import OrTrigger
from apscheduler.triggers.cron import CronTrigger
from CornerDetectAndAutoEmail.AveMaxMinDetect.Global import h_l_pot_info_url
from CornerDetectAndAutoEmail.AveMaxMinDetect.MaxMin import judgeAndSendMsg, updatePotInfo
from SDK.MyTimeOPT import get_current_datetime_str


def time_now():
    print(str(get_current_datetime_str()))


trigger = OrTrigger([CronTrigger(hour='11', minute='1-59/3')])

sched = BlockingScheduler()
sched.add_job(time_now, trigger, day_of_week='mon-fri', max_instances=10)

sched.start()
Beispiel #20
0
def add_meeting_scheduler(name):
    cron_interval = db.meet.meetup.find_one({'name': name})['cron_interval']
    scheduler.add_job(func=lambda: meeting_monitor(name),
                      trigger=CronTrigger(**cron_interval),
                      id='meeting_monitor_' + name,
                      replace_existing=True)
Beispiel #21
0
        'target': 'etc',
        'against': 'usdt',
        'time_elapse': 1,
        'time_unit': 'day',
        'jitter': 10,
    },
]

for each in min_jobs:
    id = '_'.join([
        each['target'], each['against'],
        str(each['time_elapse']), each['time_unit']
    ])
    scheduler.add_job(
        func=cron_store_history_prices,
        trigger=CronTrigger(second=15),  # every minute 15 seconds point
        args=[okcoinSpot, each['target'], each['against']],
        kwargs={
            'since': None,
            'time_elapse': each['time_elapse'],
            'time_unit': each['time_unit']
        },
        id=id,
        name='Price/min: {}'.format(id),
        replace_existing=True,
    )

for each in hour_jobs:
    id = '_'.join([
        each['target'], each['against'],
        str(each['time_elapse']), each['time_unit']
Beispiel #22
0
 def test_month_rollover(self, timezone):
     trigger = CronTrigger(timezone=timezone, day=30)
     now = timezone.localize(datetime(2016, 2, 1))
     expected = timezone.localize(datetime(2016, 3, 30))
     assert trigger.get_next_fire_time(None, now) == expected
Beispiel #23
0
def start_scheduler2():
    trigger = CronTrigger(day_of_week='mon-sun', hour='11-14', minute='*/1')
    scheduler.add_job(scheduled_job_visit, trigger)  # 根据需要进行设置
    scheduler.start()
Beispiel #24
0
 def test_cron_zero_value(self, timezone):
     trigger = CronTrigger(year=2009, month=2, hour=0, timezone=timezone)
     assert repr(trigger) == (
         "<CronTrigger (year='2009', month='2', hour='0', "
         "timezone='Europe/Berlin')>")
Beispiel #25
0
 def addCronJob(self, job_id, func, policy, args):
     cron = CronTrigger(**policy)
     self.sched.add_job(func, cron, args=args, id=job_id)
Beispiel #26
0
    def create_alarm_range_week_time_pm(cls, ext=None, template=None, values=None, history=[]):
        try:
            if cls.get_activation() == False:
                return
            #hora, minuto, rango ini, rango fin
            values_x = values[0]
            if isinstance(values_x, list):
                range_week_start = values_x[0]
                range_week_end = values_x[1]
                duration_h = values_x[2]
                duration_m = values_x[3]
            elif isinstance(values_x, tuple):
                range_week_start = values_x[0]
                range_week_end = values_x[1]
                duration_h = values_x[2]
                duration_m = values_x[3]
            else:
                range_week_start = values[0]
                range_week_end = values[1]
                duration_h = values[2]
                duration_m = values[3]

            duration_h = cls._replace_words_with_numbers(duration_h)
            duration_m = cls._replace_words_with_numbers(duration_m)
            
            for time_interval in time_intervals.values():
                for variation in time_interval['variations']:
                    if variation in range_week_start:
                        range_week_start = time_interval['scheduler_interval']
                        break
            for time_interval in time_intervals.values():
                for variation in time_interval['variations']:
                    if variation in range_week_end:
                        range_week_end = time_interval['scheduler_interval']
                        break

            if duration_h is not None and duration_m is not None:
                idx = get_id()

                m2 = str(duration_h) + ":" + str(duration_m) + " PM"
                m2 = cls._time_conversion(m2)
                m2 = m2.split(":")
                duration_h = m2[0].strip()
                duration_m = m2[1].strip()
                day_of_week = range_week_start + "-" + range_week_end

                cron1 = CronTrigger(day_of_week=day_of_week, hour=duration_h, minute=duration_m, timezone='America/Bogota')
                trigger = OrTrigger([cron1])

                job = cls.scheduler.add_job(cls._alarm_range_pm, trigger, id=idx, args=[idx])

                cls.alarm_pending.append({"id": idx, "job": job, "day_of_week": day_of_week, "hour": duration_h, "minute": duration_m})

                if not cls.scheduler.running:
                    cls.scheduler.start()
                r = template.format("He creado la alarma {0} {1} {2} pm".format(day_of_week, duration_h, duration_m))
                cls.response(r)
        except Exception as e:
            print(e)
            r = template.format("No se pudo crear la alarma")
            cls.response(r)
Beispiel #27
0
 def jobs(self):
     trigger = CronTrigger(hour=5)
     return ((trigger, self.drop_expired_logins), )
Beispiel #28
0
    summary = '{city} weather summary\n'.format(city=ret["city"]["name"])

    for item in weather_items:
        temp = get_celsium(item["main"]["temp"])
        date = datetime.strptime(item["dt_txt"], '%Y-%m-%d %H:%M:%S')
        local_dt = get_localized_dt(date)
        time_format = local_dt.strftime('%H:%M o\'clock')
        weather_info = item["weather"][0]["description"]
        summary += '{time_format} : {temp:.1f} ({weather_info})\n'.format(
            weather_info=weather_info, time_format=time_format, temp=temp)

    smtp = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
    smtp.starttls()
    msg = EmailMessage()
    smtp.login(SENDER_EMAIL, PASSWORD)

    msg['Subject'] = PROJECT_NAME
    msg['From'] = SENDER_EMAIL
    msg['To'] = [SENDER_EMAIL]
    msg.set_content(summary)
    smtp.send_message(msg)
    smtp.quit()


@sched.scheduled_job(CronTrigger(hour=JOB_HOURS, minute=JOB_MINUTES))
def timed_job():
    foo()


sched.start()
Beispiel #29
0
                episode_title=ep_schedule["episode"]["title"],
            )
            metadata = {
                'episodeID': episode_id,
            }
            # send_and_log_pin(topics=[show_id], pin=pin, metadata=metadata)
            futures.append(
                executor.submit(send_and_log_pin,
                                topics=[show_id],
                                pin=pin,
                                metadata=metadata))
        for _ in concurrent.futures.as_completed(futures):
            pass

    print("End of the job")


if __name__ == "__main__":
    logging.basicConfig()
    logging.getLogger("pebble-timeline").setLevel(logging.DEBUG)
    logging.getLogger("trakttv").setLevel(logging.INFO)
    logging.getLogger("scheduler").setLevel(logging.INFO)

    fetch_shows_and_send_pins()

    every_night = CronTrigger(hour=3, minute=0, second=40)
    scheduler = BlockingScheduler()

    scheduler.add_job(fetch_shows_and_send_pins, trigger=every_night)
    scheduler.start()
Beispiel #30
0
    # # api.update_status(status = wonderland)
    # # time.sleep(60)
    # api.update_status(status=fireworks)
    # time.sleep(60)
    # api.update_status(status = zerofever)
    # time.sleep(60)
    api.update_status(status=zerofever2)
    time.sleep(60)
    api.update_status(status = totalstreams)
    time.sleep(60)
    api.update_status(status = top5string)
    # time.sleep(86400)

if __name__ == "__main__":
    scheduler = BlockingScheduler()
    scheduler.add_job(spotify, CronTrigger(minute="1", hour="2"))
    scheduler.start()

# def checker():
#     global column
#     ws = wb.worksheets[0]
#     if  ATEEZSpotify.totalstream() != ws.cell(59, column).value:
#           spotify()
#         column += 1
#     else:
#         schedule.every(10).minutes.do(checker)


# spotify()
# schedule.every().day.at("18:30").do(checker)