1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cqcqphper-taskPHP

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

taskPHP 3.0 — надёжный PHP-фреймворк для планирования задач

История версий

Все ветки можно посмотреть по ссылке: https://gitee.com/cqcqphper/taskPHP/branches.

taskPHP

taskPHP — это фреймворк на основе PHP для планирования и выполнения задач, который использует многопроцессорную архитектуру для распределения и запуска задач. Поддерживает различные механизмы межпроцессного взаимодействия, а также многопоточность при наличии расширения pthreads (необязательно). Работает на Linux и Windows. Обладает хорошей масштабируемостью, расширяемостью и надёжностью, используется многими компаниями. Также открыт для вклада от сообщества разработчиков.

Адрес проекта

GitHub: https://github.com/qq8044023/taskPHP; Gitee: https://gitee.com/cqcqphper/taskPHP. Оба адреса будут синхронизироваться.

Онлайн-общение в QQ-группе

Если вам интересно, присоединяйтесь к QQ-группе для обсуждения и улучшения. Чем больше людей поддерживают проект, тем больше мотивации у нас обновлять его. Не забудьте поставить звёздочку в правом верхнем углу.

Ссылка на группу: https://shang.qq.com/wpa/qunwpa?idkey=2a8520f5c1518df3a796e71d8c993b2f00856a035d59ca46285c4e325116ba4d.

Описание фреймворка

  1. Многопроцессорный режим выполнения задач.
  2. Многопоточный режим с использованием расширения pthreads (опционально).
  3. Блокирующие очереди сообщений для межпроцессного обмена.
  4. Распределение задач и их выполнение не в одном процессе (distribute) и (worker). Для запуска на Windows и Linux используйте файл входа start.php. На Windows можно запустить windows_start.cmd для быстрого старта.
  5. Синтаксис выполнения времени похож на crontab и поддерживает установку секунд.
   * * * * * * *    //формат :секунда минута час день месяц год неделя
  10 * * * * * *    //выполняется каждую минуту в 10-ю секунду
 /10 * * * * * *	//выполняется каждые 10 секунд
 /1 * 15,16 * * * * //выполняется каждый день в 15:00 и 16:00 каждую секунду
  1. Добавление задач простое: нужно только написать класс задачи и реализовать метод run. Подробности смотрите в каталоге examples с примерами тестов.

Требования к среде

  1. Версия PHP >= 5.5;
  2. Включение расширения socket;
  3. Включение расширения PDO;
  4. Включение расширения shmop.

Примечание

  1. Из-за времени распределения задач время выполнения может иметь погрешность в 1–2 секунды.
  2. Если задача вызывает exit или проблемы с её написанием, фоновый скрипт остановится, и потребуется перезапустить процесс через удалённый менеджер управления.
  3. После некоторого времени работы в многопоточном режиме может возникнуть ошибка «pthreads has detected that the taskphp\Pthread could not be started, the system lacks the necessary resources or the system-imposed limit would be exceeded in xxx».
  4. Если количество фоновых задач велико или они выполняются очень часто, может произойти перегрузка базы данных без освобождения соединений. Необходимо закрыть соединение в конце задачи.
  5. Путь хранения кода на Windows не должен содержать пробелов, иначе процесс не запустится. Лучше избегать пробелов в переменных среды PHP, но если они есть, можно определить массив php_path='php' в конфигурации фреймворка.

Список документов

  • Использование класса базы данных (src/docs/db.md);
  • Установка расширения PHP для многопоточности на Windows (src/docs/thread_windows.md);
  • Инструкция по использованию класса Utils (src/docs/utils.md);
  • Интеграция с фреймворком thinkphp5.0 (src/docs/thinkphp5.0.md).

Использование

Установка через composer

composer require taskphp/taskphp dev-master

Команды

start.php  start [all|имя задачи]  запуск (по умолчанию all без параметров)
start.php  start &   запуск в фоновом режиме (только для Linux)
start.php  close all  остановить фреймворк (обязательно указать all)

Запуск программы

[root@FX-DEBUG taskphps]# php ./start.php start
------------------------- taskPHP ------------------------------
taskPHP version:3.0      PHP version:5.5.38
license1:https://github.com/qq8044023/taskPHP
license2:https://gitee.com/cqcqphper/taskPHP
startTime:2018-04-04 10:00:50
------------------------- taskPHP Manage  ----------------------
http://ServerIp:8082
http://127.0.0.1:8082
------------------------- taskPHP PROCESS ----------------------
listen                      processes                     status
distribute                    1                          [success]
demo1                         1                          [success]
demo2                         1                          [success]
----------------------------------------------------------------
Нажмите Ctrl-C для выхода. Запуск успешен.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cqcqphper-taskPHP.git
git@api.gitlife.ru:oschina-mirror/cqcqphper-taskPHP.git
oschina-mirror
cqcqphper-taskPHP
cqcqphper-taskPHP
master