hiredis消息未到达订阅处理程序

时间:2019-06-17 10:20:02

标签: c++ hiredis

我一直以df1 = [{"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator" : "k","Money" : 200}, {"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator": "k","Money" : 200}, {"Customer Number": "AFIMBN01000BCA17030001177", "Account Name": "Sunarto","Debit/Credit Indicator" : "D", "Money" : 0}] df1 = pd.DataFrame(df1) df1.loc[df1["Money"] != 0, "Per item"] = df1["Money"].map(df1["Money"].value_counts()) print (df1) Account Name Customer Number Debit/Credit Indicator Money \ 0 Sunarto AFIMBN01000BCA17030001177 k 200 1 Sunarto AFIMBN01000BCA17030001177 k 200 2 Sunarto AFIMBN01000BCA17030001177 D 0 Per item 0 2.0 1 2.0 2 NaN gdf = pd.pivot_table(df1, index = ["Account Name","Customer Number"],values = ["Money", "Per item"],aggfunc = np.sum) print (gdf) Money Per item Account Name Customer Number Sunarto AFIMBN01000BCA17030001177 400 4.0 作为客户端,除hiredis之外的其他所有东西,例如setpublish等都可以正常工作。我可以订阅,但是在尝试发布到已订阅的频道时无法收到任何消息。这是我正在使用的代码:

subscribe

和on message函数:

int main() {
    signal(SIGPIPE, sigHandler);
    struct event_base *base = event_base_new();

    assert(base != nullptr);

    auto redis = redisAsyncConnect(IP, PORT);

    if (redis != nullptr && redis->err) {
        std::cerr << redis->err;
        delete redis;
        exit(1);
    }
    std::cout << "Connected" << END;

    int flag;

    std::cout << "Calling redisLibeventAttach" << END;

    redisLibeventAttach(redis, base);
    flag = redisAsyncCommand(redis, onMessage, (char *) "sub", "SUBSCRIBE test");

    std::cout << "Command ret: " << flag << END;

    flag = event_base_dispatch(base);
    std::cout << " Event base flag " << flag << END;


    return 0;
}

还有什么我应该做的吗?

0 个答案:

没有答案
相关问题