Найти - Пользователи
Полная версия: Отправка результата запроса по временному интервалу
Начало » Python для новичков » Отправка результата запроса по временному интервалу
1
glo
Всем привет.
Есть задача передать результат запроса к БД с клиента на серверное приложение. Запрос заключается в выборке данных за последние 30 секунд от времени текущего запуска. Каким образом сделать так, чтобы данные отсылались через равные интервалы времени автоматически.

import socket
import firebirdsql
from datetime import datetime, timedelta
from json import dumps
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'localhost'
port = 2020
s.connect((host, port))
conn = firebirdsql.connect(***)
curs = conn.cursor()
nowtime = datetime.now()
delttime = nowtime - timedelta(seconds=30)
def json_serial(obj):
    if isinstance(obj, datetime):
        serial = obj.strftime('%d.%m.%Y %H:%M:%S')
        return serial
query = 'select PROJ_ID_, OBJ_ID_, TIME_, LON_, LAT_, SPEED_ from basedata where TIME_ between ? and ?'
params = [delttime.strftime('%d.%m.%Y %H:%M:%S'), nowtime.strftime('%d.%m.%Y %H:%M:%S')]
curs.execute(query, params)
for c in curs.fetchall():
    response = dumps(c, default=json_serial)
    s.send(response.encode())
s.close()
Budulianin
glo
Каким образом сделать так, чтобы данные отсылались через равные интервалы времени автоматически.

Создать задачу в celery или более простом аналоге, которая будет запускаться каждые 30 сек.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB