小编eri*_*son的帖子

如何有效地跟踪集合中的最小元素?

编程问题的脉络中:假设有一组对象可以相互比较和排序.在添加对象时,跟踪集合中最小元素的最有效方法是什么?偶尔删除当前最小元素?

collections data-structures

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

使用Quartz Worker线程拆分log4j输出

我正在开发一个应用程序,它包含一个基于Quartz的整体调度程序和使用CronTriggers运行的"CycledJob".该应用程序的目的是根据源国家处理来自不同电子邮件收件箱的输入.

根据它所来自的国家(即美国,英国,法国国家联盟等),该应用程序触发一个作业线程来运行每个国家的处理周期,因此将有一个英国工人线程,一个用于美国,法国等.将输出格式化为log4j时,我正在使用thread参数,因此它会发出[ApplicationName_Worker-1],[ApplicationName_Worker-2]等.尽可能尝试,我找不到一种方法来命名线程,因为它们'重新退出Quartz的Thread Pools.虽然我可能会扩展Quartz,但我想制定一个不同的解决方案,而不是搞乱标准库.

问题在于:当使用log4j时,我希望将来自US线程输出的所有日志项输出到仅限US的文件,同样适用于每个国家/地区线程.我不在乎他们是否留在一个统一的ConsoleAppender中,FileAppender拆分就是我在这里所说的.我已经知道如何指定多个文件追加器等等,我的问题是我无法根据国家区分.应用程序中有20多个类可以在执行链上,其中很少我想通过每个方法传递额外的"上下文"参数的知识负担...我已经考虑了扩展一个策略模式log4j包装类,但除非我能让链中的每个类都知道它所在的哪个线程参数化记录器调用,这似乎是不可能的.

所以这里有一个问题:在一个应用程序中允许许多从属类的建议方法是什么,每个用于每个不同的线程来处理输入,知道它们在记录时是否在特定国家线程的上下文中?

祝你好运,请提出澄清问题!我希望有人能够帮助我找到解决这个问题的好方法.欢迎所有建议.

java multithreading log4j scheduler quartz-scheduler

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

我应该创建一个新的石英作业并触发一个作业和多个触发器吗?

我希望使用quartz来安排电子邮件,但我不确定采取哪种方法:

  1. 创建新作业并在计划电子邮件时触发OR
  2. 创建单个作业,并在每次安排电子邮件时创建新的触发器

我需要以任何方式传递消息/收件人等,而且我不确定创建大量工作是否会开始增加大量内存开销,因为很可能会安排数千封电子邮件.

更新:这些电子邮件将由用户安排,而不是我 - 所以我将在运行时以编程方式添加这些电子邮件,它们不会在任何特定时间安排.

java scheduling quartz-scheduler

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

事件点击:使用 CGEventPost、kCGSessionEventTap、kCGAnnotatedSessionEventTap、CGEventTapPostEvent 改变结果

我在通过事件点击发布事件时遇到了棘手的问题。我在 kCGHIDEventTap 上点击 NSSystemDefined,然后用新的事件替换该事件。我遇到的问题是,根据我发布事件的方式,它只能被某些应用程序看到。我的测试应用程序是 Opera、Firefox、Quicksilver 和 Xcode。以下是我在事件点击回调中尝试过的不同技术,以及结果。我期待每个应用程序的操作(“正确响应”);“系统提示音”表示没有绑定到那个键的系统声音。

  1. 创建一个新事件,并从回调中返回它。Opera:无响应/系统提示音,Firefox:无响应/系统提示音,Quicksilver:正确响应,Xcode:无响应/系统提示音

  2. 创建一个新事件,使用 CGEventPost 发布到 kCGSessionEventTap,返回 null。Opera:无响应/系统提示音,Firefox:无响应/系统提示音,Quicksilver:正确响应,Xcode:无响应/系统提示音

  3. 创建一个新事件,使用 CGEventPost 发布到 kCGAnnotatedSessionEventTap,返回 null。Opera:正确响应,Firefox:正确响应,Quicksilver:无响应/系统提示音,Xcode:无响应/系统提示音

  4. 创建一个新事件,使用 CGEventTapPostEvent 发布,返回 null。Opera:无响应/系统提示音,Firefox:无响应/系统提示音,Quicksilver:正确响应,Xcode:无响应/系统提示音

  5. 创建一个新事件,使用 CGEventPost 发布到 kCGSessionEventTap,并返回新事件。Opera:无响应/系统提示音,Firefox:无响应/系统提示音,Quicksilver:正确响应,Xcode:无响应/系统提示音

  6. 创建一个新事件,使用 CGEventPost 发布到 kCGAnnotatedSessionEventTap,并返回新事件。Opera:正确响应和系统哔声,Firefox:正确响应和系统哔声,Quicksilver:正确响应和系统哔声,Xcode:无响应/双系统哔声

  7. 创建一个新事件,使用 CGEventTapPostEvent 发布,并返回新事件。Opera:无响应/系统提示音,Firefox:无响应/系统提示音,Quicksilver:正确响应,Xcode:无响应/系统提示音

(6) 是最好的,但用户抱怨正确响应时系统会发出额外的哔哔声,我猜这来自事件的双重发布。我不确定其他组合可以尝试,或者其他地方可以看。任何人都可以提供任何指导吗?有什么方法可以同时从我的回调中返回事件并发布到带注释的水龙头而不同时执行这两项操作?

抱歉问了这么长的问题;我一直在做很多实验。

提前致谢


更新:这是我用来创建事件点击的代码:

CFMachPortRef eventTap;
eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, 0,CGEventMaskBit(NX_SYSDEFINED) | (1 << kCGEventKeyDown) | (1 << kCGEventKeyUp), myCGEventCallback, (void *)hidEventQueue);
Run Code Online (Sandbox Code Playgroud)

events macos-carbon core-graphics quartz-graphics cgeventtap

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

如何在Java中处理时间

我正在研究与Java中的作业调度相关的功能,我需要根据天,周或小时来安排作业.

我遇到了两个问题:

  • 处理一段时间(不是日期)的好表示/库是什么?

  • 什么是一个很好的图书馆来解析时间的文本表示,即2d 3wk 3周和2天?与JIRA的相似之处.


我以为这一定是以前做过的,但我似乎无法找到正确的词来谷歌.

java time scheduling date

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

如何从字节数组创建 RSAPrivateKey 实例?

您好,我正在尝试解密使用 RSA 公钥加密的文件。我有一个对应于 pubkey 的 3072 位 RSA 私钥。该文件包含密钥的 PKCS8 编码的原始字节。我在一个字节数组 rsa_priv 中。

public void decrypt()
{
try
{
    SecretKeySpec sk=new SecretKeySpec(rsa_priv,"RSA/EBC/PKCS8");
    Cipher dec = Cipher.getInstance("RSA");
    dec.init(Cipher.DECRYPT_MODE, sk,new IvParameterSpec(iv));
     //OAEPWithSHA-512AndMGF1Padding        
     byte temp[];
     temp=dec.doFinal(sess);
     String t=temp.toString();
     System.out.println("Session key is:"+ t);
     //session=dec(sess,rsa_priv);OAEPWithSHA-256AndMGF1Padding
}
catch (Exception e)
{
    System.out.println("Exception occured:"+ e);
}
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到以下信息

Exception occured:java.security.InvalidKeyException: No installed provider 
supports this key: javax.crypto.spec.SecretKeySpec
Run Code Online (Sandbox Code Playgroud)

我已经进口了这些

import java.io.*;
import javax.crypto.*; 
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.KeyGenerator;
import java.security.*;
import javax.crypto.SecretKey;
import javax.crypto.spec.OAEPParameterSpec;
Run Code Online (Sandbox Code Playgroud)

有人请帮助我

java cryptography

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

您将如何在Java中实现安全的静态登录凭据系统?

我们最近进行了安全审计,并暴露了此处系统中的一些弱点.由此产生的任务之一是我们需要更新我们的合作伙伴凭证系统以使其更安全.

"旧的"处理方式是生成(坏)密码,将其提供给具有ID的伙伴,然后他们将通过https发送该ID和该密码的Base 64编码副本以及所有XML请求.然后我们解码它们并验证它们.

这些密码不会改变(因为那时我们的合作伙伴必须进行编码/配置更改才能更改它们,并且与多个环境中的数百个合作伙伴协调密码到期将是一场噩梦)并且它们不必由人类输入或人类可读的.如果我们的合作伙伴有更好但仍然相对简单的实施,我愿意改变这一点.

基本上它归结为两件事:我需要一个更安全的Java密码生成系统,并确保它们以安全的方式传输.

我发现了一些手动密码生成器,但没有什么真正脱颖而出作为标准的方法来做到这一点(也许是有充分理由的).传输它们可能比通过https进行简单的Base 64编码更安全.

你会对密码生成器做些什么,你认为现有的传输方法是否足够安全?

编辑:XML包含在SOAP消息中,凭据位于标头中,而不在XML本身中.此外,由于在我们设置密码时,密码是每个合作伙伴的一次性操作,因此我们不太担心发电机的效率.

java security encryption https

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

是否有返回true,false或unknown的Java约定?

我正在写一个方法,如果某些事情是真的,它将返回.但是,如果测试条件所需的资源不可用,则无法返回true或false.

早些时候,我只是把它作为一个返回a的方法boolean.但是现在,为了适应异常,我想在函数参数中传递true或false并使用返回值作为测试的成功或失败指示符.

这是在Java中执行此操作的"正确和常见"方式吗?或者是Java中普遍存在的其他东西来实现这一目标?

java idioms exception return-value

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

Java Scheduler Quartz Cron触发时间设置

我正在使用Quartz来调度我在java中的工作.我用"CronTrigger"来设定时间.我想每天晚上11点55分解雇我的工作.我应该在setCronExpression("")中写什么来完成我的Job.??

我对守则的看法是:---

CronTrigger trigger = new CronTrigger();
trigger.setName("runMeJob");
trigger.setCronExpression("0 55 23 * * ?");
Run Code Online (Sandbox Code Playgroud)

上面的代码是正确的还是我应该做一些修改????

java quartz-scheduler crontrigger cronexpression

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

如何清除然后重绘石英图纸

我正在根据传入的信息使用石英制作复杂的绘图.我唯一无法弄清楚的部分是如何清除我已绘制的线条,矩形等?基本上,我想要删除整个绘图,然后从新数据中再次绘制它.

iphone erase clear quartz-graphics

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