Python-每天使用Schedule从数据库中填充数据

时间:2019-01-11 01:09:58

标签: python scheduled-tasks

我想每天将数据从一个数据源填充到另一个数据源。因此,通过一些研究,我找到了“ Schedule”,因此我尝试了一下。但是,它没有按我预期的方式工作。因此,我想知道为什么以及是否有任何解决方法可以实现我的目标。

下面是我在Pyhton3中的代码示例。

B

我总是有import pandas as pd from sqlalchemy import create_engine import schedule import time postgre_engine = create_engine('postgresql+psycopg2://user1:pass1@srever_ip/db_name1') mysql_engine = create_engine('mysql+pymysql://user2:pass2@server_ip2:port_no/db_name2') def job(): # get data from mysql query = ('SELECT * ' 'FROM table1 ' 'WHERE event_date_time > CURRENT_DATE - 1 ' 'AND event_date_time < CURRENT_DATE ' ) df = pd.read_sql(query, mysql_engine) # write back to postgres postgre_table = 'table2' df.to_sql(postgre_table, postgre_engine, if_exists='append', index=False) schedule.every().day.at("07:30").do(job) while True: schedule.run_pending() time.sleep(1) 。还有其他方法可以使计划的查询有效吗?

1 个答案:

答案 0 :(得分:2)

鉴于您使用的是Unix系统,则可以使用cron。要为当前用户添加新的cronjob,请使用

crontab -e

然后,在由环境变量$EDITOR确定的编辑器中,您可以添加一条每天在7:30执行的新行

30 7 * * * /path/to/your/script

每次调用job函数并删除schedule部分时,都必须对您的脚本进行修改以执行该函数。