|
2 | 2 | import json |
3 | 3 | from sqlalchemy.sql import text |
4 | 4 | from flask import current_app |
| 5 | +import time |
5 | 6 |
|
6 | 7 | from sqlalchemy.dialects.postgresql import insert |
7 | 8 | from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, exc, select |
|
13 | 14 | metadata = MetaData() |
14 | 15 |
|
15 | 16 | ex_stat = Table("execution_status", metadata, autoload=True, autoload_with=engine) |
| 17 | +kvt = Table("kv_unique", metadata, autoload=True, autoload_with=engine) |
| 18 | + |
16 | 19 |
|
17 | 20 | # Alembic version bfb1262d3195 |
18 | 21 |
|
@@ -52,3 +55,70 @@ def log_exec_status(job_id: str, exec_stage: str, exec_status: str, job_details: |
52 | 55 | logger.error(e) |
53 | 56 |
|
54 | 57 |
|
| 58 | +def log_volgistics_update(): |
| 59 | + """Log Volgistics data update""" |
| 60 | + |
| 61 | + timestamp = datetime.now().ctime() |
| 62 | + |
| 63 | + with engine.connect() as connection: |
| 64 | + ins_stmt = insert(kvt).values( |
| 65 | + keycol = 'last_volgistics_update', |
| 66 | + valcol = timestamp, |
| 67 | + ) |
| 68 | + # If key already present in DB, do update instead |
| 69 | + upsert = ins_stmt.on_conflict_do_update( |
| 70 | + constraint='kv_unique_keycol_key', |
| 71 | + set_=dict(valcol=timestamp) |
| 72 | + ) |
| 73 | + |
| 74 | + try: |
| 75 | + connection.execute(upsert) |
| 76 | + except Exception as e: |
| 77 | + logger.error("Insert/Update failed on Volgistics stats") |
| 78 | + logger.error(e) |
| 79 | + |
| 80 | + |
| 81 | +def log_shelterluv_update(): |
| 82 | + """Log Shelterluv data update""" |
| 83 | + |
| 84 | + timestamp = datetime.now().ctime() |
| 85 | + |
| 86 | + with engine.connect() as connection: |
| 87 | + ins_stmt = insert(kvt).values( |
| 88 | + keycol = 'last_shelterluv_update', |
| 89 | + valcol = timestamp, |
| 90 | + ) |
| 91 | + # If key already present in DB, do update instead |
| 92 | + upsert = ins_stmt.on_conflict_do_update( |
| 93 | + constraint='kv_unique_keycol_key', |
| 94 | + set_=dict(valcol=timestamp) |
| 95 | + ) |
| 96 | + |
| 97 | + try: |
| 98 | + connection.execute(upsert) |
| 99 | + except Exception as e: |
| 100 | + logger.error("Insert/Update failed on Shelterluv stats") |
| 101 | + logger.error(e) |
| 102 | + |
| 103 | + |
| 104 | +def log_salesforce_update(): |
| 105 | + """Log SalesForce data update""" |
| 106 | + |
| 107 | + timestamp = datetime.now().ctime() |
| 108 | + |
| 109 | + with engine.connect() as connection: |
| 110 | + ins_stmt = insert(kvt).values( |
| 111 | + keycol = 'last_salesforce_update', |
| 112 | + valcol = timestamp, |
| 113 | + ) |
| 114 | + # If key already present in DB, do update instead |
| 115 | + upsert = ins_stmt.on_conflict_do_update( |
| 116 | + constraint='kv_unique_keycol_key', |
| 117 | + set_=dict(valcol=timestamp) |
| 118 | + ) |
| 119 | + |
| 120 | + try: |
| 121 | + connection.execute(upsert) |
| 122 | + except Exception as e: |
| 123 | + logger.error("Insert/Update failed on SalseForce stats") |
| 124 | + logger.error(e) |
0 commit comments