小编jbx*_*jbx的帖子

如何从Apache Flink中的数据库中查找和更新记录的状态?

我正在研究数据流应用程序,我正在调查使用Apache Flink进行此项目的可能性.主要原因是它支持漂亮的高级流构造,非常类似于Java 8的Stream API.

我将接收与数据库中的特定记录相对应的事件,并且我希望能够处理这些事件(来自诸如RabbitMQ或Kafka之类的消息代理)并最终更新数据库中的记录并推送已处理的/将事件转换为另一个接收器(可能是另一个消息代理)

理想情况下,与特定记录相关的事件需要以FIFO顺序进行处理(尽管会有一个时间戳有助于检测无序事件),但可以并行处理与不同记录相关的事件.我打算使用keyBy()构造来按记录分区流.

需要完成的处理取决于数据库中有关记录的当前信息.但是,我无法找到一个示例或建议的方法来查询数据库以获取此类记录,以便使用我需要处理它的其他信息来丰富正在处理的事件.

我想到的管道如下:

- > keyBy()对接收到的id - >从数据库中检索对应id的记录 - >对记录执行处理步骤 - >将处理后的事件推送到外部队列并更新数据库记录

需要更新数据库记录,因为另一个应用程序将查询数据.

在实现此管道之后,可能会有额外的优化措施.例如,可以将(更新的)记录缓存在托管状态,以便同一记录上的下一个事件不需要另一个数据库查询.但是,如果应用程序不知道特定记录,则需要从数据库中检索它.

Apache Flink中用于此类场景的最佳方法是什么?

java stream apache-flink

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

如果在"a + b"模式下打开文件指针,fseek()会将文件指针移动到文件的开头吗?

我希望使用"a + b"模式打开一个文件,即如果它不存在则会自动创建,但如果它存在,我不想覆盖它.我希望能够读取和写入该文件.

该文件是二进制文件,我想保存其中特定的记录struct.所以我想对我想要fseek()的记录做,然后使用保存记录fwrite().

代码如下所示(MyRecord是a typedef到a struct,而FILENAMEa #define是文件名):

int saveRecord(MyRecord *pRecord, int pos)
{
    FILE* file = fopen(FILENAME, "a+b");
    if (file == NULL)
    {
        printf("Unable to open file %s\n", FILENAME);
        return 0;
    }

    fseek(file, pos * sizeof(MyRecord), SEEK_SET);
    fwrite(pRecord, sizeof(MyRecord), 1, file);
    fclose(file);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

然而这段代码有追加记录到文件的末尾,即使我设置pos为0,为什么不fseek()SEEK_SET追加模式工作?

我知道我可以简单地用"R + B"打开它,如果它失败,"WB"打开它,但我想知道为什么这不起作用,为什么fseek()SEEK_SET离开的文件指针末端.对记录此行为的地方的任何引用都赞赏(因为我找不到任何,或者我使用了错误的关键字).

c fopen append fseek

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

有没有什么方法可以让XQuery从一些Epoch开始以毫秒为单位获取当前时间?

XQuery提供各种date/time功能current-dateTime(),但是我似乎无法找到一个能让我在Epoch之后以毫秒为单位的时间.提取小时,分钟和秒的功能似乎过于单独存在.

获得大纪元时间(即unix时间或类似时间)的正确方法是什么XQuery

xpath xquery

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

Gnuplot - 绘制从x轴到绘图的垂直线,以及从绘图到y轴的垂直线

我有一个通过gnuplot绘制的高斯曲线,我希望有一条从x轴上升的线,它确切地停在它撞击曲线的位置,并且垂直于左边来击中y轴,理想情况下显示的值是两个轴,并显示与x轴相交的符号.

在gnuplot中添加这个的正确方法是什么?我尝试使用箭头玩箭头,但我是gnuplot的新手,似乎无法找到实现我需要的方法.

gnuplot

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

为什么新的IntelliJ IDEA 14.1中的字体无法正确呈现?

我刚刚将IntelliJ IDEA(终极版)升级到版本14.1,并且项目视图,菜单和对话框中使用的字体似乎无法正确呈现.为了防万一,我从我的14.0.3版本中导出了相同的设置,尽管它们看起来完全一样,但它仍然保持不变.我没有对JDK或任何东西做任何更改,如果我运行旧版本,字体会变回漂亮而清晰的字体.我正在使用Ubuntu 14.04.在Windows 7上不会发生此问题.

在IntelliJ IDEA 14.0.3下:

IntelliJ IDEA 14.0.3

在IntelliJ IDEA 14.1下:

在此输入图像描述

在新的字体中,字体似乎有点大(即使在两种情况下我都将它们设置为字体大小22,并且我从之前的IntelliJ IDEA安装中导入了设置).请注意,例如'g'是如何在下面切断的.还有其他问题,文本在按钮上未对齐,或在对话框中不完全可见.

通常我升级时不会发生这种情况.有没有办法让字体看起来像以前一样?在这个最新版本中有什么变化,我需要在启动脚本中做一些JVM切换吗?

更新:2015年5月11日

刚刚更新到IntelliJ 15,问题仍然存在.附上新截图.注意文本是如何在底部切出的,其中有p和y之类的字母,按钮文本是偏移的.

IntelliJ 15

fonts intellij-idea intellij-14 intellij-15

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

使用spring embedded ldap模拟活动目录以进行集成测试

我正在使用ActiveDirectoryLdapAuthenticationProvider带有Spring Boot 的Spring Security (基于注释的配置)来使用Active Directory进行身份验证并生成令牌.一切正常.

我希望添加一些模拟整个过程的集成测试,我想可能会使用Spring嵌入式LDAP服务器.

我在网上找到的另一个例子中添加了这个ldif文件.

#Actual test data

dn: dc=test,dc=com
objectclass: top
objectclass: domain
objectclass: extensibleObject
dc: local

# Organizational Units
dn: ou=groups,dc=test,dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups

dn: ou=people,dc=test,dc=com
objectclass: top
objectclass: organizationalUnit
ou: people

# Create People
dn: uid=testuser,ou=people,dc=test,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Test
sn: User
uid: testuser
password: secret

# Create Groups
dn: cn=developers,ou=groups,dc=test,dc=com
objectclass: top
objectclass: groupOfUniqueNames
cn: developers
ou: developer
uniqueMember: uid=testuser,ou=people,dc=test,dc=com

dn: cn=managers,ou=groups,dc=test,dc=com …
Run Code Online (Sandbox Code Playgroud)

active-directory spring-security ldif spring-security-ldap spring-boot

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

如何将mod_rewrite重定向到相对URL

我正在尝试为漂亮的URL实现基本的URL重定向,并且由于图像,CSS等也位于相同的路径中,我需要确保如果访问URL而没有斜杠,则会自动添加.

如果我把绝对URL这样工作,这工作正常:

RewriteRule ^myParentDir/([A-Z0-9_-]+)$ http://www.mydomain.com/myParentDir/$1/ [R,nc,L]
Run Code Online (Sandbox Code Playgroud)

但是如果我将其更改为相对URL,那么每次我在文件夹中移动东西时都不必更改它,这根本不起作用.

这些是我尝试过的,都不起作用,或者将我重定向到服务器的实际内部目录路径,如/ public_html/...:

RewriteRule ^myParentDir/([A-Z0-9_-]+)$ ./myParentDir/$1/ [R,nc,L]

RewriteRule ^myParentDir/([A-Z0-9_-]+)$ myParentDir/$1/ [R,nc,L]
Run Code Online (Sandbox Code Playgroud)

进行URL重定向的正确方法是什么,以便用户输入以下内容:

http://www.mydomain.com/somedir/myVirtualParentDir/myVirtualSubdir
Run Code Online (Sandbox Code Playgroud)

他被重定向到(通过HTTP 301或302):

http://www.mydomain.com/somedir/myVirtualParentDir/myVirtualSubdir/
Run Code Online (Sandbox Code Playgroud)

谢谢.

编辑:添加更多细节,因为它似乎并不清楚.假设我正在实现一个库,我希望使用mod_rewrite拥有漂亮的URL.所以,我希望网址如下:

http://www.mydomain.com/somedir/galleries/cats
Run Code Online (Sandbox Code Playgroud)

显示猫的缩略图,而:

http://www.mydomain.com/somedir/galleries/cats/persian
Run Code Online (Sandbox Code Playgroud)

它显示了所有猫的缩略图中的一个图像,名为波斯语.所以实际上物理目录结构和重写将如下:

http://www.domain.com/somedir/gallery.php?category=cats&image=persian
Run Code Online (Sandbox Code Playgroud)

所以我想做的是在/ somedir中放一个.htaccess文件来捕获对/ gallery的所有请求,并根据它后面的虚拟子目录,在重写时使用它们作为占位符,有2个重写规则:

RewriteRule ^galleries/(A-Z0-9_-]+)/$ ./gallery.php?category=$1 [nc]
RewriteRule ^galleries/(A-Z0-9_-]+)/+([A-Z0-9_-]+)$  ./gallery.php?category=$1&image=$2 [nc]
Run Code Online (Sandbox Code Playgroud)

现在的问题是,事实上,画廊脚本需要一些CSS,JavaScript和图片,位于http://www.domain.com/somedir/css,http://www.domain.com/somedir/js,和HTTP ://www.domain.com/somedir/images分别.

我不想硬编码任何绝对URL,因此CSS,JS和Images将使用相对URL(./css,./ js,./ images等)引用.所以我可以按如下方式重写URL:

RewriteRule ^galleries/[A-Z0-9_-]+/css/(.*)$ ./css/$1 [nc]
Run Code Online (Sandbox Code Playgroud)

问题是,由于http://www.domain.com/somedir/galleries/cats是一个虚拟目录,以上只有在用户输入时才有效:

http://www.domain.com/somedir/gallaries/cats/
Run Code Online (Sandbox Code Playgroud)

如果用户省略了尾部斜杠,mod_dir将不会添加它,因为实际上该目录实际上并不存在.

如果我使用绝对URL进行重定向重写,它可以工作:

RewriteRule ^galleries/([A-Z0-9_-]+)$ http://www.mydomain.com/subdir/galleries/$1/ [R,nc,L]
Run Code Online (Sandbox Code Playgroud)

但我不想让URL前缀硬编码,因为我希望能够将它放在我想要的任何域中我想要的任何域,所以我尝试了这个:

RewriteRule ^galleries/([A-Z0-9_-]+)$ galleries/$1/ [R,nc,L]
Run Code Online (Sandbox Code Playgroud)

但相反,它重定向到:

http://www.mydomain.com/home/myaccount/public_html/subdir/galleries/theRest
Run Code Online (Sandbox Code Playgroud)

这显然不是我想要的.

编辑:进一步澄清

我正在寻找的解决方案是避免硬编码.htaccess中的域名或文件夹路径.我正在寻找一个解决方案,如果我将.htaccess与其余的脚本和资源打包在一起,只要用户在其Web服务器上解压缩它,它就可以开箱即用.除了这个尾随斜线问题之外,所有这些都是这样的.

因此任何涉及以任何方式对.htaccess中的父目录或web服务器路径进行硬编码的解决方案都不是我想要的.

apache mod-rewrite redirect

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

在Scala中使用的标准二进制搜索树结构是什么?

什么是Scala 2.10.x中应该使用的标准平衡二叉搜索树实现?我环顾四周,它似乎已AVLTree被删除,并RedBlack已被弃用(Since version 2.10.0) use TreeMap or TreeSet instead.但是,TreeMapTreeSet没有提供我需要的功能,因为我需要能够遍历树并基于此构建更复杂的数据结构.

是否有任何新类提供了不被弃用的普通平衡二叉树功能?

scala avl-tree red-black-tree binary-search-tree

9
推荐指数
2
解决办法
3459
查看次数

未捕获OAuthException:Facebook PHP API出现未知错误

我有这个小脚本从页面获取专辑.这工作正常,直到今天我开始得到这个奇怪的错误:

未捕获OAuthException:发生了未知错误.\n在第1254行的.../base_facebook.php中抛出\n

我检查了与此相关的其他问题,每个人似乎都有这个原因.这几个月工作正常,我从来没有碰过它.我还检查了App ID和Secret,以防它们过期或者什么,但Facebook App页面上的那些仍然是相同的.

什么可能突然导致这种情况?

我做了一些调试,问题发生在_graph()从Facebook获得此结果的函数中:

[13-Mar-2014 01:22:46 UTC] array (
  'error' => 
  array (
    'message' => 'An unknown error has occurred.',
    'type' => 'OAuthException',
    'code' => 1,
  ),
)
Run Code Online (Sandbox Code Playgroud)

我在这里检查了Facebook开发者网站:https://developers.facebook.com/docs/graph-api/using-graph-api/#errors,错误代码1被描述为:

可能是因停机而导致的临时问题 - 等待后重试操作,如果再次发生,请检查您是否正在请求现有API.

我整天都遇到了这个问题!我不认为这是一个暂时的问题.

php facebook oauth facebook-graph-api

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

强制Prolog选择变量的唯一值

好的我是Prolog的新手,请原谅,如果这是微不足道的,但我似乎无法找到一个合适的优雅答案.我试图在learnprolognow.org,练习2.4(填字游戏)上进行练习.

练习提供了以下事实:

   word(astante,  a,s,t,a,n,t,e). 
   word(astoria,  a,s,t,o,r,i,a). 
   word(baratto,  b,a,r,a,t,t,o). 
   word(cobalto,  c,o,b,a,l,t,o). 
   word(pistola,  p,i,s,t,o,l,a). 
   word(statale,  s,t,a,t,a,l,e).
Run Code Online (Sandbox Code Playgroud)

我想出解决每个单词的填字游戏位置的解决方案是这样的:

crossword(V1, V2, V3, H1, H2, H3) :-
   word(V1, V1a, V1bH1b, V1c, V1dH2b, V1e, V1fH3b, V1g), 
   word(V2, V2a, V2bH1d, V2c, V2dH2d, V2e, V2fH3d, V2g), 
   word(V3, V3a, V3bH1f, V3c, V3dH2f, V3e, V3fH3f, V3g), 
   word(H1, H1a, V1bH1b, H1c, V2bH1d, H1e, V3bH1f, H1g), 
   word(H2, H2a, V1dH2b, H2c, V2dH2d, H2e, V3dH2f, H2g), 
   word(H3, H3a, V1fH3b, H3c, V2fH3d, H3e, V3fH3f, H3g).
Run Code Online (Sandbox Code Playgroud)

随着V1aV1g等为每个单词的字符,并且V1bH1b …

prolog crossword prolog-dif

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