Как запустить функцию в фоновом режиме? - PullRequest
1 голос
/ 02 мая 2020

Я использую пакет API для отправки данных в endboint с помощью cURL

function create_customer_event() {
  $data =  [
    'email'                   => $shopify_json['email'] ?? '',
    'firstname'               => $shopify_json['first_name'] ?? '',
    'lastname'                => $shopify_json['last_name'] ?? '',
  ];

  $api = new MauticApi();
  $contactApi = $api->newApi('contacts', $auth, $apiUrl);
  $contactApi->create($data);
}

Затем у меня есть веб-крючок, который отправляет запрос POST на ту же страницу, и когда эта страница с этой функцией получает этот почтовый запрос это запустить эту функцию. Проблема, с которой я сталкиваюсь, заключается в том, что приложение, отправляющее запросы POST в мой сценарий, если обнаруживается, что ответ занял более нескольких секунд, снова отправляет запрос.

Так что мне интересно, есть ли способ получить этот запрос POST к моему сценарию и ответ 200 с последующим независимым выполнением моей функции в фоновом режиме (поскольку выполнение моей функции может занять более 2 секунд).

Я понимаю, что это можно сделать путем кодирования моей функции curl но это будет трудно реализовать, так как мне придется также обрабатывать oAuth2, который не был сделан пакетом.

1 Ответ

1 голос
/ 02 мая 2020

Я считаю, что перенаправление пользователя с помощью header("Location: blabla"); и выполнение кода, который вы хотите выполнить после этого, приведет к тому, что вы хотите.

...