Как я могу выполнить Сценарий PHP в определенном интервале (например, один раз в день)?

Ваш метод tell_time нуждается в self в качестве параметра, поскольку это метод класса, а не функция. Добавление должно заставить его работать нормально. Попробуйте это:

from threading import Thread
from tkinter import *
import datetime

def build_ui():
    root = Tk()
    root.title("Auto Hedger")
    root.geometry("640x480")

    btn1 = Button(root, text="get data", command=testing1)
    btn1.pack()

    root.mainloop()

class test_object():
    def tell_time(self):
        print(datetime.datetime.now())

def testing1():
    aaa = test_object()
    t1000 = Thread(target=aaa.tell_time, args=[])
    t1000.start()

if __name__ == '__main__':
    t_root = Thread(target=build_ui)
    t_root.start()
10
задан Adriana 14 May 2009 в 20:26
поделиться

8 ответов

Если вы не можете или не хотите использовать cron, можно обновлять его только при доступе к странице. Вы можете кэшировать результат HTTP-запроса и обновлять его только при загрузке страницы, если кэш старше одного дня или любого выбранного вами интервала.

7
ответ дан 3 December 2019 в 17:21
поделиться

I've done this kind of thing in the past when I didn't have access to cron:

$lastRunLog = '/path/to/lastrun.log';
if (file_exists($lastRunLog)) {
    $lastRun = file_get_contents($lastRunLog);
    if (time() - $lastRun >= 86400) {
         //its been more than a day so run our external file
         $cron = file_get_contents('http://example.com/external/file.php');

         //update lastrun.log with current time
         file_put_contents($lastRunLog, time());
    }
}
12
ответ дан 3 December 2019 в 17:21
поделиться

Вы также можете использовать Веб-Cron , если хотите попасть на сайт через определенный интервал времени.

3
ответ дан 3 December 2019 в 17:21
поделиться

Вы можете использовать Cronjob . Затем вы можете запустить php-скрипт из командной строки.

php /someplace/somefile.php

Cronjob будет выглядеть следующим образом, если вы обновляете каждый день.

0  0  *  0  0  php /someplace/somefile.php
1
ответ дан 3 December 2019 в 17:21
поделиться

Вы даже можете использовать таблицу базы данных - очень простую по структуре, идентификатору, дате, URL-адресу сценария и тому, что вам нужно, - и добавлять строку каждый раз при запуске сценария.

Затем , перед запуском сценария просто проверьте номера строк для каждого дня.

2
ответ дан 3 December 2019 в 17:21
поделиться

Since you explicitly state that you don't want to use cron, the only other way to do this (without something analogous to cron) is to set up your script as a daemon. However, unless you really need the flexibility that daemons provide, cron is much easier and simpler.

Here's one daemon walk-through.

1
ответ дан 3 December 2019 в 17:21
поделиться

Если вы работаете в среде * nix, вы можете использовать задания cron

-1
ответ дан 3 December 2019 в 17:21
поделиться

Что не так с cron?

У вас есть пара вариантов cron - ваш php может быть вызван интерпретатором PHP из командной строки, или вы можете использовать wget или fetch или аналогичный для вызова ваш PHP на сервере.

Как правило, PHP, запускаемый из контекста веб-сервера, имеет ограничение по времени на то, как долго он может выполняться, поэтому в целом вы не можете настроить «фоновые» потоки PHP для выполнения каких-либо действий «позже».

-2
ответ дан 3 December 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: