improve stability of long running requests

This commit is contained in:
DrMaxNix 2024-02-19 22:01:41 +01:00
parent 33a90c4a5f
commit 3d4d3bd373
5 changed files with 26 additions and 1 deletions

View File

@ -55,6 +55,10 @@
// TRY SUBSCRIBING //
// make sure session isn't locked
if(extension_loaded("session")) session_write_close();
// subscribe
if(!Newsletter::subscribe(mail_address: $mail_address, verify_key: $verify_key)){
http_response_code(200);
echo(json_encode([

View File

@ -55,6 +55,10 @@
// REMOVE FROM MAILING LIST //
// make sure session isn't locked
if(extension_loaded("session")) session_write_close();
// unsubscribe
if(!Newsletter::unsubscribe(mail_address: $mail_address, unsubscribe_key: $unsubscribe_key)){
http_response_code(200);
echo(json_encode([

View File

@ -54,6 +54,10 @@
// VERIFY //
// make sure session isn't locked
if(extension_loaded("session")) session_write_close();
// verify
Newsletter::verify(mail_address: $mail_address, language: $language);

View File

@ -64,6 +64,10 @@
// TRY SENDING //
// make sure session isn't locked
if(extension_loaded("session")) session_write_close();
// send
if(!Newsletter::send_one(mail_address: $mail_address, content_name: $content_name)){
http_response_code(200);
echo(json_encode([

View File

@ -378,11 +378,20 @@
* @return bool Whether sending was successful.
*/
public static function send_one(string $mail_address, string $content_name): bool {
// acquire runlock
$old_ignore_user_abort = (bool)ignore_user_abort(true);
// read content
$content = self::content_file_read($content_name);
// send content
return self::send(mail_address: $mail_address, content: $content);
$success = self::send(mail_address: $mail_address, content: $content);
// release runlock
ignore_user_abort($old_ignore_user_abort);
// return success state
return $success;
}