zoukankan      html  css  js  c++  java
  • python_datetime模块实现多任务每天定时触发_微信定时发送消息

    Need

    想要在服务器上部署微信机器人,实现定时发送消息

    定时--使用datetime与time模块

    每小时刷新一次,检测接下来的一个小时有没有任务,如果有,则创建线程等待发送

    发送--使用wxpy

    献上我的代码

    from wxpy import *
    import time
    import datetime
    from threading import Thread
    
    THE_GROUP='GroupName'
    raw={
    	1:[20,21,0,'好'],#[hour,mins,day(optional),'msg']
    	2:[20,22,0,'1'],
    	3:[20,23,0,'1'],
    }
    
    #parse time
    def parse(list_,now):
    	# make it today
    	year=now.year
    	month=now.month
    	day=now.day
    
    	h=list_[0]
    	m=list_[1]
    	# if list_[2]:
    		# day=list_[2]
    	return datetime.datetime(year,month,day,h,m,0)
    #parse time Done! 
    
    #ItChat
    # bot=Bot(cache_path=True)
    #Linux
    bot = Bot(console_qr=2,cache_path="wechat.pkl")
    
    #make sure there is an active groupchat
    print('warnning:#make sure there is an active groupchat')
    print('OR ,you have added the groupchat into the Contacts!')
    target=bot.groups().search(THE_GROUP)[0]
    
    def send(msg,sec,i):
    	print('Thread starts ,sleep %ds' %sec)
    	time.sleep(sec)
    	target.send(messages)
    	print('No.%d mseeage sended !'%int(i))
    	return
    
    
    if __name__=='__main__':
    	while True:
    		
    		print('Refreshing...')
    		for i in raw:
    			#Refresh now time
    			now=datetime.datetime.now()
    			target=parse(raw[i],now)
    			delta=target-now
    			if delta.days>=0:
    				if delta.seconds<60*60:# triggered before 1 hour of eta				 				
    					print('initialize thread %d'%i)
    					eta=delta.seconds
    					msg=raw[i][-1]
    
    					t=Thread(target=send,args=(msg,eta,i))
    					t.start()
    				else:
    					print('No.%d not fill'%i)
    			else:
    				print('No.%d not fill'%i)
    
    		print('sleep 1 hour......')
    		time.sleep(60*60)
    

    啊!!!!!!!

    万事俱备,东风不来。在服务器端登不上微信,在本地可以。我还在server上上传了pkl登录文件,但是因为ip和手机端地理位置的原因吧,我猜,被block了,一定是WeChat Group从中作梗。还是好好学习,多学点服务器端的知识吧。

  • 相关阅读:
    SpringMVC 2.5.6 +Hibernate 3.2.0
    batch normalization在测试时的问题
    python loss layer: does not need backward computation?
    deconvolution layer parameter setting
    dlmread matlab
    概率图模型课本笔记(五)
    概率图模型课本笔记(四)
    概率图模型课本笔记(三)
    概率图模型课本笔记(二)
    概率图模型课本笔记(一)
  • 原文地址:https://www.cnblogs.com/lyzz1314/p/12392364.html
Copyright © 2011-2022 走看看