อูบุนตู 20.04
หลาม 3.8
ฉันพยายามส่งข้อความไปยัง slack channel ทุกวันเวลา 9.00 น. โดยใช้ crontab
กำลังติดตาม https://www.youtube.com/watch?v=5bTkiV_Aadc&t=482s crontab ทำงานสำเร็จเมื่อฉันเขียนไฟล์บันทึกทุกนาที
อย่างไรก็ตาม การทำซ้ำวิธีการเดียวกันเพื่อส่งข้อความหย่อนดูเหมือนจะไม่ทำงานและไม่สามารถหาเหตุผลได้
นี่คือสิ่งที่ฉันได้ลองไปแล้ว (อ้างอิง: เหตุใดสคริปต์ crontab จึงไม่ทำงาน)
อันดับแรก นี่คือลักษณะของรหัสของฉัน:
จาก dotenv นำเข้า load_dotenv
วันที่และเวลานำเข้า
นำเข้า numpy เป็น np
นำเข้าระบบปฏิบัติการ
นำเข้าแพนด้าเป็น pd
จากเส้นทางนำเข้า pathlib
นำเข้า plotly.graph_objects ทันที
หย่อนนำเข้า
# ---- แสดงความคิดเห็น -----
# จาก extract_data นำเข้า DataExtraction
# จากการนำเข้า const inf_type, slack_channel
# env_path = เส้นทาง ('.') / '.env'
# load_dotenv (dotenv_path=env_path)
# --------------
วันที่ = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
dir_path = os.path.dirname(os.path.realpath(__file__))
ชื่อไฟล์ = os.path.join(dir_path, 'test_log.log')
#คนตัดไม้
คนตัดไม้ = logging.getLogger (__name__)
logger.setLevel (เข้าสู่ระบบ.INFO)
file_handler = logging.FileHandler (ชื่อไฟล์)
file_handler.setLevel (การเข้าสู่ระบบ.INFO)
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
คนตัดไม้.addHandler(file_handler)
def write_to_log():
logger.info("ทดสอบ")
ถ้า __name__ == "__main__":
เขียน_to_log()
โค้ดด้านบนใช้งานได้กับ crontab ก็ต่อเมื่อฉันแสดงความคิดเห็นบางส่วนเมื่อฉันใช้ตัวแปรสภาพแวดล้อมหรือสคริปต์การนำเข้าที่ทำ
หลังจากตรวจสอบว่าการเขียนไปยังไฟล์บันทึกใช้งานได้ การแทนที่การเขียนบันทึกเพื่อส่งข้อความไปยัง slack ดูเหมือนจะไม่ทำงาน
นี่คือรหัสแทนที่ (รหัสด้านบนทั้งหมดเหมือนกัน)
def send_msg():
ลูกค้า = slack.WebClient (โทเค็น = "Token_name")
client.chat_postMessage(channel="#slackbot_test", text="hello")
ถ้า __name__ == "__main__":
send_msg()
ขณะนี้ไม่มีโชคในการค้นหาว่า crontab ไม่ทำงานกับ slack หรือไม่ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม ขอบคุณ!