Вопросы по теме 'rust-tokio'

Предотвратить блокировку `chan :: Receiver` при пустом буфере
Я хотел бы создать канал Multi-Producer Multi-Consumer (MPMC) с различными параллельными задачами, обрабатывающими и производящими в нем данные. Некоторые из этих задач отвечают за взаимодействие с файловой системой или сетью. Два примера:...
313 просмотров
schedule 03.11.2021

Асинхронное чтение из UdpSocket
Я пытаюсь одновременно обрабатывать прибывающие пакеты UDP в Tokio. Однако следующий MWE не делает того, что я ожидал: extern crate futures; extern crate tokio_core; extern crate tokio_io; use futures::{Future, Stream}; use...
643 просмотров

Как отменить бесконечный поток из самого потока?
Я пытаюсь отменить интервал ( interval_timer ) после очистки очереди, но не уверен, что это правильная стратегия. let mut some_vars = vec![1, 2, 3, 4, 5, 6, 7, 8]; let interval_timer = tokio_timer::Timer::default(); let timer = interval_timer...
1140 просмотров
schedule 06.09.2021

Невозможно tokio :: запустить упакованное Future, потому что свойство Send, связанное с трейтом, не выполнено
У меня есть функция, которая при желании должна запускать будущее или ничего не делать, в зависимости от параметров. Я попытался поставить Box вокруг двух фьючерсов, которые будут возвращены, tokio::prelude::future::Done<Item=(), Error=()> ,...
1655 просмотров
schedule 24.09.2021

Как использовать синтаксис async / await с Tokio?
Я пытаюсь использовать async / await с процессами в Rust. Я использую tokio и tokio-process : #![feature(await_macro, async_await, futures_api)] extern crate tokio; extern crate tokio_process; use std::process::Command; use...
3203 просмотров
schedule 08.09.2021

Как сделать таймаут работающего кода?
Я пытаюсь запустить какой-то фрагмент кода в течение не более timeout времени. Другими словами, я хочу, чтобы фрагмент кода либо завершился в заданное время, либо был прерван. Конкретный код, который будет выполняться, будет представлять собой...
145 просмотров
schedule 11.11.2021

Как скопировать файл с помощью tokio :: fs
Я пытаюсь скопировать файл с помощью tokio для асинхронных операций. Я видел, что tokio не предоставляет никаких методов, подобных tokio::fs::copy , которые выполняли бы эту работу за меня (например, эквивалент std::fs::copy для операций...
565 просмотров
schedule 17.10.2021

Ошибка ожидаемого параметра времени жизни в примере обратного вызова минимального фьючерса?
Я пытаюсь создать очень простой пример асинхронной функции обратного вызова в Rust : extern crate tokio; extern crate tokio_core; extern crate tokio_io; use std::error::Error; use tokio::prelude::future::ok; use tokio::prelude::Future; fn...
308 просмотров
schedule 19.02.2022

привязка признака `tokio :: net :: tcp :: stream :: TcpStream: tokio_io :: async_read :: AsyncRead` не выполняется
Я не могу собрать простое приложение для тестирования токио-кодека. tokio :: net :: tcp :: stream :: TcpStream реализует AsyncRead и -Write. Но когда я пытаюсь скомпилировать приведенный ниже код, я получаю сообщение об ошибке ниже. Я все еще...
1418 просмотров

Как я могу использовать hyper :: client из другого потока?
У меня есть несколько потоков, выполняющих некоторые тяжелые операции, и мне нужно использовать клиента в середине работы. Я использую Hyper v0.11 в качестве HTTP-клиента и хочу повторно использовать соединения, поэтому мне нужно использовать тот же...
1904 просмотров
schedule 05.03.2022

Фьючерсы Rust `try_filter_map` вызывают панику: 'async fn возобновляется после завершения'
У меня есть поток, который генерирует результат, я хочу применить try_filter_map () к этим элементам и взять первый элемент, который не приводит к ошибке. Рассмотрим следующий пример: ( площадка ) use futures::{pin_mut, prelude::*}; use tokio;...
114 просмотров
schedule 29.03.2022

Как я могу асинхронно получать данные и изменять их с помощью эхо-сервера на базе Tokio?
Я работаю над эхо-сервером, который принимает данные из TCP и применяет к этим данным некоторую логику. Например, если данные клиента приходят как hello , я хочу ответить как hello from server . Я могу переслать входные данные с помощью функции...
380 просмотров
schedule 06.04.2022

Как повторно объединить ReadHalf и WriteHalf в TcpStream
Есть ли способ снова объединить Tokio ReadHalf и WriteHalf в TcpStream после split ? let mut stream = TcpStream::connect("127.0.0.1:8080").await?; let (reader, writer) = stream.split(); // re-join pseudo-code let stream: TcpStream =...
87 просмотров
schedule 23.04.2022

Совместное использование структур данных при асинхронном закрытии
Я застрял, пытаясь разделить (только для чтения) структуры данных между асинхронными помощниками. Я пытаюсь создать Hyper-сервер, на котором я предварительно генерирую некоторые данные, которые могут использоваться всеми обработчиками запросов....
244 просмотров
schedule 17.05.2022

ошибка сегментации reqwest из AWS Lambda с Rust
Я не могу понять, как сделать простой HTTP-запрос от AWS Lambda, используя ржавчину, без ошибки сегментации. Я получаю эту ошибку независимо от того, использую ли я tokio-0.2 или tokio-0.3 с уровнем совместимости. Похоже, что lambda_http был...
248 просмотров
schedule 15.05.2022

Как связать функции чтения токио?
Есть ли способ связать read_* функции в tokio::io "рекурсивным" способом? По сути, я хочу сделать что-то вроде: read_until x, затем read_exact y, затем напишите ответ и вернитесь наверх. Если вы не понимаете, о каких функциях я...
293 просмотров
schedule 24.05.2022

Для чего Futures :: future :: lazy?
В документации Tokio есть этот фрагмент: extern crate tokio; extern crate futures; use futures::future::lazy; tokio::run(lazy(|| { for i in 0..4 { tokio::spawn(lazy(move || { println!("Hello from task {}", i);...
1085 просмотров
schedule 22.05.2022

Как создать длительную задачу Tokio в другой задаче, не блокируя родительскую задачу?
Я пытаюсь создать объект, который может управлять фидом из веб-сокета, но иметь возможность переключаться между несколькими фидами. Есть черта Feed : trait Feed { async fn start(&mut self); async fn stop(&mut self); } Есть...
473 просмотров
schedule 01.06.2022

Использование Actix из приложения Tokio: смешивание actix_web :: main и tokio :: main?
В настоящее время у меня есть основной, написанный как пример async для библиотеки Reqwest . #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { Мы можем использовать для этого точный пример. Теперь я...
1394 просмотров
schedule 03.06.2022

Почему эта задержка в будущем внутри опроса () не работает в моем настраиваемом типе потока?
Я хочу печатать «Привет» раз в секунду. Цитата из документа: Фьючерсы используют модель, основанную на опросах. Потребитель будущего неоднократно вызывает функцию опроса. Затем будущее пытается завершить. Если будущее может завершиться,...
333 просмотров
schedule 21.06.2022