4

プロセスごとに可能なlibevent-http接続の制限を制御したいと思います。

どうやってやるの ?

ドキュメントに情報が見つかりませんでした。助けてください!

接続数を制限しなかった場合、システムがクラッシュする可能性があると思います。プロジェクトは非常に高負荷です。

ev_base = event_init();
ev_http = evhttp_new(ev_base);
// limit http connections here... how can i do that?
4

1 に答える 1

3
struct evconnlistener *
evconnlistener_new(struct event_base *base,
    evconnlistener_cb cb, void *ptr, unsigned flags, int backlog,
    evutil_socket_t fd)

バックログは、変更したいものです。内部的に彼らは呼びます:

listen(fd, backlog)

ただし、httpライブラリでは、バックログを128に修正しています。

evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t port)
{
    [...]
        if (listen(fd, 128) == -1) {
                event_sock_warn(fd, "%s: listen", __func__);
                evutil_closesocket(fd);
                return (NULL);
        }
    [...]
}
于 2011-07-02T20:32:58.820 に答える