Вопросы по теме '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 просмотров
schedule
20.10.2021
Как отменить бесконечный поток из самого потока?
Я пытаюсь отменить интервал ( 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 просмотров
schedule
25.02.2022
Как я могу использовать 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