小编Kaz*_*hta的帖子

在Android上使用MessagePack

有人试图使用MessagePackAndroid应用吗?
可能吗?我试图使用Jar msgpack-java并收到以下异常:

Caused by: java.lang.ExceptionInInitializerError
  at org.msgpack.Packer.pack(Packer.java:532)
  at org.msgpack.MessagePack.pack(MessagePack.java:31)
  ... 15 more
  Caused by: java.lang.ExceptionInInitializerError
  at org.msgpack.template.TemplateRegistry.<clinit>(TemplateRegistry.java:38)
  ... 17 more
  Caused by: java.lang.VerifyError: org.msgpack.template.BeansFieldEntryReader
  at org.msgpack.template.builder.BeansTemplateBuilder.<init (BeansTemplateBuilder.java:42)
  at org.msgpack.template.builder.BuilderSelectorRegistry.initForJava(BuilderSelectorRegistry.java:73)
  at org.msgpack.template.builder.BuilderSelectorRegistry.<clinit>(BuilderSelectorRegistry.java:38)
  ... 18 more
Run Code Online (Sandbox Code Playgroud)

我使用的代码非常简单

PrintWriter out = new PrintWriter(socket.getOutputStream());
Message msg = new Message();
msg.body = "asdasdasd";
msg.from = "qwe";
msg.to = "ttt";
byte[] bytes = MessagePack.pack(msg);
out.print(bytes);
out.flush();
Run Code Online (Sandbox Code Playgroud)

我有javassist.jar,msgpack-0.5.2.jar,slf4j-api-1.6.2.jarslf4j-jdk14-1.6.2.jar在我的lib目录中.

在我的服务器应用程序中,此代码可以使用相同的库.

java android messagepack msgpack

10
推荐指数
1
解决办法
8407
查看次数

在Redis中存储MessagePacked哈希

我在Redis中存储MessagePacked哈希时遇到问题.我在下面粘贴了一个测试用例.从Redis中提取打包数据并解压缩时,哈希略有损坏.这似乎发生在哈希值超出一定长度时,尽管我不能肯定地说.

我使用的是Redis 2.4.17(默认配置),Ruby 1.9.3p194,MessagePack 0.4.7和Redis gem 3.0.2.使用节点会发生同样的问题,所以我假设问题出在MessagePack或Redis中.有任何想法吗?

require 'redis'
require 'msgpack'

class Test

  def self.run(url)
    redis = Redis.new
    data = {'number' => 13498935756, 'hash' => {'url' => url}}
    redis.set('my_key', MessagePack.pack(data))

    result = MessagePack.unpack(redis.get('my_key'))
    puts result
    puts result['hash']['url'] == data['hash']['url']
  end

end

Test.run('http://fake.example.com')  # works
=>  {"number"=>13498935756, "hash"=>{"url"=>"http://fake.example.com"}}
=>  true

Test.run('http://fakeurl.example.com')  # does not work
=>  {"number"=>13498935756, "hash"=>{"url"=>"ttp://fakeurl.example.com"}}
=>  false
Run Code Online (Sandbox Code Playgroud)

ruby redis messagepack msgpack

5
推荐指数
1
解决办法
2111
查看次数

Python 日志记录 - 当前安装的记录器/处理程序的概述

我正在尝试使用代码中的记录器从 Django 项目设置 Fluentd 日志处理程序:

def get_fluentd_logger(name):
    import logging
    from fluent import handler

    logging.basicConfig(level=logging.DEBUG)
    logger = logging.getLogger(name)
    logger.addHandler(handler.FluentHandler(name, host='localhost', port=24224))
    return logger
Run Code Online (Sandbox Code Playgroud)

handler.FluentHandler来自包fluent-logger,我在本地运行fluent

流利的.conf:

<source>
  type forward
  port 24224
</source>

<match **>
  type copy
  <store>
        type stdout
  </store>

  <store>
          type forward
          send_timeout 60s
          recover_wait 10s
          heartbeat_interval 1s
          phi_threshold 8
          hard_timeout 60s

          <server>
            name monitoring
            host 1.2.3.4
            port 24224
            weight 100
          </server>
  </store>
</match>
Run Code Online (Sandbox Code Playgroud)

当我从非 django python 项目运行它时,它工作正常,但是当从 django 调用时,它不执行任何操作。

问题是:有没有办法查看当前安装的记录器及其处理程序,以便我可以调试这种情况?

[编辑]

当从 django 设置完成时,如下所示:

LOGGING …
Run Code Online (Sandbox Code Playgroud)

python django logging fluentd

5
推荐指数
1
解决办法
3756
查看次数

MessagePack C API

在着眼于C API为MessagePack,有多个功能以适当地串行化(包)中的数据,根据类型:msgpack_pack_uint8,msgpack_pack_int32,...

在API中似乎没有相应的调用来解压缩数据. msgpack_unpack_next返回一个msgpack_object.这些对象仅具有粗粒度类型(类型中最大的:int64,double,...),基于所包含的枚举.

我在这里错过了什么吗?是期望使用粗物体然后再施放?

如何正确拆包?

此外,有没有好的文档或用法示例?网站上的那些是微不足道的.

c messagepack msgpack

1
推荐指数
1
解决办法
3599
查看次数

标签 统计

messagepack ×3

msgpack ×3

android ×1

c ×1

django ×1

fluentd ×1

java ×1

logging ×1

python ×1

redis ×1

ruby ×1