Лучший способ отменить вызов receiveMessage с длинным опросом в Swift версии AWS SQS? - PullRequest
0 голосов
/ 07 августа 2020

Я нахожусь в процессе портирования моего Android приложения на iOS.

В моем Android приложении есть отдельный поток, который опрашивает сообщения в заданной очереди SQS. Я могу без проблем прервать этот процесс опроса с помощью thread.interrupt. В настольной версии приложения, где я использую C#, я могу использовать токены отмены. Однако из того, что я могу сказать, Swift, похоже, не имеет способа прервать опрос, я уже пробовал использовать DispatchWorkItem и вызывать отмену, он ничего не делает, чтобы остановить опрос, поскольку я считаю, что в соответствии с документацией, которая применяется только к задачи, выполнение которых еще не началось.

Итак, мой вопрос: как лучше всего отменить фоновую задачу, которая выполняет длительный опрос в течение 20 секунд. Мое ближайшее решение - проверить, был ли DispatchWorkItem отменен после этих 20 секунд, но это не закрывает поток сразу, как я могу в C# или Java, так есть ли эквивалент Swift, которого я где-то не хватает?

...