cqztt 2019-09-05 12:05 采纳率: 20%
浏览 429
已结题

24小时内只向数据库中插入一条数据

批量检测端口通不通,不通的时候及时通知相关人员(发短信,向短信平台数据库中插入一条数据)。

24小时只内通知一次

端口大概几百个,不通的情况较少见

问题在于怎么解决24小时内只通知一次

代码已经写成下面这样了,代码参考了一下别人的。

端口存在一个port.txt文件中

格式为:IP空格端口

例如:12.12.23.23 80

-*- coding: utf-8 -*-

"""
Created on Thu Sep 5 10:35:06 2019

@author: citic
"""

import socket,time
import pymssql
import schedule
while 1:
file_obj = open('port.txt')
for line in file_obj:
try:
sc=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip = line.split()[0]
port = int(line.split()[1])
print (ip,port)
#设置超时时间(0.0)
sc.settimeout(2)
sc.connect((ip,port))
timenow=time.localtime()
datenow = time.strftime('%Y-%m-%d %H:%M:%S', timenow)
logstr="%s:%s 连接成功->%s \n" %(ip,port,datenow)
print (logstr)
sc.close()
except:
file = open("log.txt", "a")
timenow=time.localtime()
datenow0 = time.strftime('%Y-%m-%d %H:%M:%S', timenow)
logstr="%s:%s 连接失败->%s \n" %(ip,port,datenow0)
print (logstr)
file.write(logstr)
file.close()

        #数据库连接
        conn=pymssql.connect(host='',user='',password='',database='')
        #打开游标
        cur=conn.cursor();
        if not cur:
            raise Exception('数据库连接失败!')
        start_time=time.time()
        int
        def insert():
            cur.execute("insert into sendmsg(phone,msg,typecode) values('',%s,'1')",logstr)
        schedule.every().day.do(insert)
        #int b=(time.time()-start_time).microseconds
        #if(b>=86400)
        #insert into 
        conn.commit()
        conn.close()
print ("sleep 10.....")
time.sleep(10)
  • 写回答

2条回答 默认 最新

  • threenewbee 2019-09-05 12:13
    关注
    mysql用插入触发器,判断下,如果存在<24小时记录,不允许插入
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月7日

悬赏问题

  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥200 关于#c++#的问题,请各位专家解答!网站的邀请码
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号