我正在使用Quartz CronTrigger工具来解析cron调度格式字符串,以确定何时应运行特定作业.我实际上并没有使用Quartz安排工作.
CronTrigger中有一个名为getFireTimeAfter(Date)的方法,它给出下一次作业将在给定日期之后触发的时间.当提供的日期现在或将来时,这很有效.但如果日期已经过去,它似乎不起作用.
Date currTime = new Date();
CronTrigger tr = new CronTrigger();
tr.setCronExpression("0 0 23 3,18 * ? *");
Date nextFireAt = tr.getFireTimeAfter(currTime);
System.out.println("Reference time: " + currTime);
System.out.println("Next fire after reference time: " + nextFireAt);
Run Code Online (Sandbox Code Playgroud)
这是每月3日和18日23:00开火的cron时间表.例如,如果我今天(8月11日)这样做,我看到:
Reference time: Thu Aug 11 10:04:25 MDT 2011
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)
但是,如果我将参考日期设置为过去,它会给我相同的下一个开火时间.
Reference time: Wed Dec 31 17:00:00 MST 1969
Next fire after reference time: Thu Aug 18 23:00:00 MDT 2011
Run Code Online (Sandbox Code Playgroud)
我期待输出为:
Reference time: …Run Code Online (Sandbox Code Playgroud) 是否有可能创建包含子元素的solr文档?
例如,我将如何表示这样的事情:
<person first="Bob" last="Smith">
<children>
<child first="Little" last="Smith" />
<child first="Junior" last="Smith" />
</children>
</person>
Run Code Online (Sandbox Code Playgroud)
解决这个问题的常用方法是什么?
我们使用PayPal订阅自动进行每月捐款.用户最初创建具有一些预定的每月捐赠金额的订阅(例如,假设每月50美元).这会创建一个定期订阅,我们通过IPN处理.一切都很好.但是,我们的界面允许用户进入并更改其每月捐赠金额,例如从每月50美元到每月100美元.我想知道如何更改PayPal订阅以反映这个新金额?
PayPal的NVP API中有一种叫做"UpdateRecurringPaymentsProfile"的方法,它说我可以更新订阅金额,但不幸的是它说:
对于快速结账的定期付款,付款金额可以每180天增加不超过20%(从创建个人资料时开始).
(参考:https://cms.paypal.com/us/cgi-bin/?cmd = __render-content&content_ID = developer/e_howto_api_nvp_r_UpdateRecurringPaymentsProfile)
说实话,PayPal的API非常混乱,所以我不确定我是否使用了Express Checkout.(我们使用简单的网站付款标准API创建订阅按钮).
这会有用吗?如果没有,是否有替代方案可以实现我们的需求?
谢谢!
我在将一些法语文本转换为UTF8时遇到了一些问题,因此可以在控制台,文本文件或GUI元素中正确显示.
原始字符串是
HANDICAP╔ES
应该是
HANDICAPÉES
这是一个代码片段,显示了我如何使用jackcess Database驱动程序读取Eclipse/Linux环境中的Acccess MDB文件.
Database database = Database.open(new File(filepath));
Table table = database.getTable(tableName, true);
Iterator rowIter = table.iterator();
while (rowIter.hasNext()) {
Map<String, Object> row = this.rowIter.next();
// convert fields to UTF
Map<String, Object> rowUTF = new HashMap<String, Object>();
try {
for (String key : row.keySet()) {
Object o = row.get(key);
if (o != null) {
String valueCP850 = o.toString();
// String nameUTF8 = new String(valueCP850.getBytes("CP850"), "UTF8"); // does not work!
String valueISO = new String(valueCP850.getBytes("CP850"), …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在不同主机上运行的两个tomcat web应用程序之间共享缓存的解决方案.缓存用于数据同步,因此必须保证缓存在两个tomcat实例之间始终保持最新.(对不起,我不是100%确定这个要求的正确术语是"一致性"还是更具体的术语,如具有ACID属性).另一个要求当然是它应该快速访问缓存,其读写次数与读取次数相同.我确实可以访问共享文件系统,因此这是一个考虑因素.
我看过像ehcache这样的东西,但是为了在webapps之间获得共享缓存,我需要在Terracotta环境之上实现或使用新的ehcache缓存服务器.前者(Terracotta)似乎有点矫枉过正,而缓存Web服务器似乎无法提供我想要的快速性能.
我看到的另一个解决方案是在Redis或memcachedb等快速键值存储上构建简单的东西.Redis是内存中的,但可以很容易地配置为集中式缓存,而memcachedb是一个基于磁盘的持久缓存,可以工作,因为我有一个共享文件系统.
我正在寻找有关如何最好地解决这个问题的建议.该解决方案需要是一种相对成熟的技术,因为它将用于生产环境.
提前致谢!
在Solr中,我想知道是否可以从标准(dismax)查询中约束/过滤"更像这个"结果集 - 例如,无需使用特定的MoreLikeThis请求处理程序?例如,我有一个Solr索引,其中包含两个国家/地区的文档.当我执行原始(dismax)查询时,我使用字段查询运算符(fq)来过滤感兴趣的国家/地区的结果.但返回的MLT结果是针对这两个国家的.我尝试使用mlt.fl = country,name来表示"显示更多在国家和地区名称相似的结果",但它似乎没有遵守国家标准(或者至少名称参数远远超过国家/地区参数) .
我似乎无法找到任何Solr文档,表明有一个选项,但我希望你们中的一个Solr专家可能有一些漂亮的技巧/黑客为此.
提前致谢!
我有一个SQL查询,我正在通过做两个查询来解决.我想知道是否有一种方法可以在单个查询中进行,使其更有效.
考虑两个表:
Transaction_Entries表和Transactions,每个都定义如下:
Transactions
- id
- reference_number (varchar)
Transaction_Entries
- id
- account_id
- transaction_id (references Transactions table)
Run Code Online (Sandbox Code Playgroud)
注意:每个事务有多个事务条目.某些事务是相关的,并且将具有相同的reference_number字符串.
要获取帐户X的所有交易条目,我会这样做
SELECT E.*, T.reference_number, sum(debit_value) total
FROM Transaction_Entries E
JOIN Transactions T ON (E.transaction_id=T.id)
where E.account_id = X
Run Code Online (Sandbox Code Playgroud)
下一部分是困难的部分.我想查找所有相关的交易,无论帐户ID如何.首先,我列出了我在上一个结果集中找到的所有唯一参考号.然后,对于每一个,我可以查询具有该参考编号的所有交易.假设我保存了上一个查询中的所有行PreviousResultSet
UniqueReferenceNumbers = GetUniqueReferenceNumbers(PreviousResultSet) // in Java
foreach R in UniqueReferenceNumbers // in Java
SELECT *, sum(debit_value) total
FROM Transaction_Entries
where transaction_id IN (SELECT *
FROM Transactions
WHERE reference_number=R)
AND account_id = X
GROUP BY another_field
Run Code Online (Sandbox Code Playgroud)
有什么建议我可以把它放到一个有效的查询?
注意:我编辑了原始问题.新添加的事实是,当我执行第二个查询时,我只查找与reference_number匹配且具有相同帐户ID的事务条目.此外,我正在尝试按another_field进行分组,并根据该分组对debit_values求和.
当我尝试使用@Gratzy提供的下面的解决方案时,我发现正在返回重复的行,因此总和(debit_value)总是它应该的值的两倍.我认为这是因为其中有其他Transaction_Entries与account_id不匹配但与匹配条件匹配.