问题列表 - 第28595页

用协议缓冲区做多态的正确方法是什么?

我正在尝试长期序列化一堆与java中强类层次结构相关的对象,并且由于它们的简单性,性能和易于升级,我想使用协议缓冲区来实现它.但是,它们并没有为多态性提供太多支持.现在,我正在处理它的方式是通过"一条消息来统治它们"的解决方案,它有一个必需的字符串uri字段,允许我通过反射实例化正确的类型,然后是一堆可选字段,用于所有我可以序列化的其他可能的类,只使用其中一个(基于uri字段的值).有没有更好的方法来处理多态,或者这是否会像我将得到的那样好?

protocol-buffers

52
推荐指数
4
解决办法
4万
查看次数

确定Python中特定数字的精度和比例

我在Python中有一个包含浮点数的变量(例如num = 24654.123),我想确定数字的精度和比例值(在Oracle意义上),所以123.45678应该给我(8,5),12.76应该给我(4,2)等

我第一次考虑使用字符串表示(via strrepr),但那些对于大数字失败(尽管我现在理解浮点表示的局限性是这里的问题):

>>> num = 1234567890.0987654321
>>> str(num) = 1234567890.1
>>> repr(num) = 1234567890.0987654
Run Code Online (Sandbox Code Playgroud)

编辑:

下面的好点.我应该澄清一下.该数字已经是一个浮点数,并通过cx_Oracle被推送到数据库.我正在努力尽我所能在Python中处理对于相应数据库类型来说太大而不执行INSERT和处理Oracle错误的浮点数(因为我想处理数字字段,而不是记录,在一段时间).我猜我map(len, repr(num).split('.'))最接近浮子的精度和比例?

python string floating-point precision scale

7
推荐指数
3
解决办法
1万
查看次数

当executorservice shutdown()时,运行/阻塞的runnables会发生什么?

我今天发布了一个关于线程模式的问题,几乎每个人都建议我查看ExecutorService.

当我查看ExecutorService时,我想我错过了一些东西.如果服务有运行或阻塞的线程,并且有人调用ExecutorService.shutdown(),会发生什么.正在运行或阻止的线程会发生什么?

ExecutorService在终止之前是否等待这些线程完成?

我问这个的原因是因为很久以前我曾经涉足Java时,他们弃用了Thread.stop(),我记得停止线程的正确方法是使用sempahores并在必要时扩展Thread:

public void run () {
    while (!this.exit) {
        try {
            block();
            //do something
        } catch (InterruptedException ie) {
        }
    }
}

public void stop () {
    this.exit = true;

    if (this.thread != null) {
        this.thread.interrupt();
        this.thread = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

ExecutorService如何处理正在运行的线程?

java multithreading design-patterns executorservice

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

PHP的SimpleXML:如何在名称中使用冒号

我正在尝试使用SimpleXML生成RSS Google Merchant.

Google提供的示例是:

<?xml version="1.0"?>
<rss version="2.0" 
xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>The name of your data feed</title>
<link>http://www.example.com</link>
<description>A description of your content</description>
<item>
<title>Red wool sweater</title>
<link> http://www.example.com/item1-info-page.html</link>
<description>Comfortable and soft, this sweater will keep you warm on those cold winter nights.</description>
<g:image_link>http://www.example.com/image1.jpg</g:image_link> <g:price>25</g:price> <g:condition>new</g:condition> <g:id>1a</g:id>
</item>
</channel>
</rss>
Run Code Online (Sandbox Code Playgroud)

我的代码有:

$product->addChild("g:condition", 'new');
Run Code Online (Sandbox Code Playgroud)

哪个产生:

<condition>new</condition>
Run Code Online (Sandbox Code Playgroud)

我在网上看到我应该使用:

$product->addChild("g:condition", 'new', 'http://base.google.com/ns/1.0');
Run Code Online (Sandbox Code Playgroud)

现在生成:

<g:condition xmlns:g="http://base.google.com/ns/1.0">new</g:condition>
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是非常反直觉的,因为现在"xmlns"声明几乎在我的RSS feed中的每一行都只有一次在根元素中.

我错过了什么吗?

php xml rss simplexml

13
推荐指数
3
解决办法
9328
查看次数

当我使用脚本名称在Windows上运行Python脚本时,无法重定向输出

这是在Windows 7(64位),Python 2.6和Win32 Extensions for Python上运行的.

我有一个简单的脚本,只打印"你好世界".我可以用它启动它python hello.py.在这种情况下,我可以将输出重定向到文件.但是如果我只是hello.py在命令行输入并重定向输出来运行它,我会得到一个例外.

C:> python hello.py
hello world

C:> python hello.py >output

C:> type output
hello world

C:> hello.py
hello world

C:> hello.py >output
close failed in file object destructor:
Error in sys.excepthook:

Original exception was:
Run Code Online (Sandbox Code Playgroud)

我想我升级到Windows 7后首先得到此错误.我记得它应该在XP中运行.我见过有人在谈论这个bug python-Bugs-1012692 | 无法将输入传递给python程序.但那是很久以前的事了.它没有提到任何解决方案.

有没有人经历过这个?有人可以帮忙吗?

python winapi redirect command-line windows-7

21
推荐指数
2
解决办法
2万
查看次数

MySQL在'到期'后删除行

我试图在MySQL数据库中删除过期的条目,在创建或更新名为lastBeat的字段时使用CURRENT_TIME进行更新,并使用以下查询来检查/删除超过20秒的行:

DELETE * FROM `rmachines` WHERE
 `lastBeat` < (NOW() - 20);
Run Code Online (Sandbox Code Playgroud)

我也尝试过CURRENT_TIME而不是NOW()

有2个主循环:

  1. 每秒更新rmachines中的一行

  2. 执行删除查询

如果2快速执行,当时间滚动到下一分钟(即59-60秒)时,它会删除该行,就像它已经过期一样(即使它确实没有!),否则它表现良好.

如果2每秒执行一次这不是那么明显,那么"错误到期"很少发生,但我每秒运行5次以暴露"问题".

我找到了一个解决方案,经过测试并且似乎在相同的情况下工作:

在mysql数据库中删除超过3个月的行的工作

但谁能告诉我为什么我的方法不起作用?

mysql datetime timestamp delete-row sql-delete

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

是否可以自动化Google Spreadsheets Scripts(例如,没有触发它们的事件)?

有谁知道是否可以使用Google Apps脚本在不需要手动事件的情况下运行?含义 - 我想设置一个电子表格,以便在指定时间每天发送一个表单.我已经找到了如何手动发送通过执行脚本的形式,但谷歌实施的设置脚本在以后运行(并在经常性的基础)的能力?

我找了一个答案,却找不到答案.

谢谢...

google-sheets google-apps-script

18
推荐指数
2
解决办法
3万
查看次数

身高图有什么意义?

我现在一直在思考这个问题......许多3D引擎支持使用四叉树,LOD ...所有你期望的功能的高级地形渲染.但是我见过的每个引擎都会从高度图加载高度数据...灰度位图.我只是无法理解它是如何有用的 - 高度图中的每个点都可以有256个值中的一个.但是如果你想模拟Mt. 珠峰?细节为1米,甚至更大?这远远超出了256的范围.当然我知道你可以实现自己的地形格式来实现这一目标,但我无法理解为什么高度图如此广泛使用,尽管它们有很大的局限性.

3d height rendering terrain

4
推荐指数
2
解决办法
3283
查看次数

用于动态端点的Apache CXF客户端

我现在使用Apache CXF作为.NET服务的Web服务客户端来绕过NTLM身份验证.它工作得很好,但我想知道为什么我似乎无法设置Web服务目标端点.CXF似乎在运行时希望WSDL出于某种奇怪的原因 - 不确定.它需要来自WSDL的物理端点,我认为它在测试环境中工作正常,但在部署时它肯定会改变.

这里有一些代码来演示:

        MyWebServices service = new MyWebServices ();
        MyWebServicesSoap port = service.getMyWebServicesSoap12();

        // Turn off chunking so that NTLM can occur
        Client client = ClientProxy.getClient(port);
        HTTPConduit http = (HTTPConduit) client.getConduit();
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
        httpClientPolicy.setConnectionTimeout(36000);
        httpClientPolicy.setAllowChunking(false);
        http.setClient(httpClientPolicy);

        port.doSomethingUseful();
Run Code Online (Sandbox Code Playgroud)

同样,我无法在CXF客户端API中看到允许我设置服务端点的地方.不是我能看到的.在这种情况下,目标是http://localhost/integration/webservices/mywebservices.asmx,但我可以在任何地方.当然这个行人问题以某种方式解决了?

java web-services cxf client-side

27
推荐指数
2
解决办法
3万
查看次数

我将如何授权WPF Windows应用程序

我开发了一个小型应用程序,我想尝试和销售,但我不熟悉如何最好地解决这个问题.

  1. 我如何将程序锁定以供试用1.

  2. 我将如何处理接受付款?

请记住,我是一个没有很多钱的单人乐队,我希望找到一个免费或低成本,有效,安全且易于实施和维护的解决方案.这不是我有很多经验,因为我通常为公共部门开发,他们购买解决方案作为一个问题,我们从未许可过它.

真的很感激任何帮助.谢谢,

.net wpf licensing software-distribution

18
推荐指数
2
解决办法
9358
查看次数