我正在研究数据流应用程序,我正在调查使用Apache Flink进行此项目的可能性.主要原因是它支持漂亮的高级流构造,非常类似于Java 8的Stream API.
我将接收与数据库中的特定记录相对应的事件,并且我希望能够处理这些事件(来自诸如RabbitMQ或Kafka之类的消息代理)并最终更新数据库中的记录并推送已处理的/将事件转换为另一个接收器(可能是另一个消息代理)
理想情况下,与特定记录相关的事件需要以FIFO顺序进行处理(尽管会有一个时间戳有助于检测无序事件),但可以并行处理与不同记录相关的事件.我打算使用keyBy()构造来按记录分区流.
需要完成的处理取决于数据库中有关记录的当前信息.但是,我无法找到一个示例或建议的方法来查询数据库以获取此类记录,以便使用我需要处理它的其他信息来丰富正在处理的事件.
我想到的管道如下:
- > keyBy()对接收到的id - >从数据库中检索对应id的记录 - >对记录执行处理步骤 - >将处理后的事件推送到外部队列并更新数据库记录
需要更新数据库记录,因为另一个应用程序将查询数据.
在实现此管道之后,可能会有额外的优化措施.例如,可以将(更新的)记录缓存在托管状态,以便同一记录上的下一个事件不需要另一个数据库查询.但是,如果应用程序不知道特定记录,则需要从数据库中检索它.
Apache Flink中用于此类场景的最佳方法是什么?
我希望使用"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离开的文件指针末端.对记录此行为的地方的任何引用都赞赏(因为我找不到任何,或者我使用了错误的关键字).
XQuery提供各种date/time功能current-dateTime(),但是我似乎无法找到一个能让我在Epoch之后以毫秒为单位的时间.提取小时,分钟和秒的功能似乎过于单独存在.
获得大纪元时间(即unix时间或类似时间)的正确方法是什么XQuery?
我有一个通过gnuplot绘制的高斯曲线,我希望有一条从x轴上升的线,它确切地停在它撞击曲线的位置,并且垂直于左边来击中y轴,理想情况下显示的值是两个轴,并显示与x轴相交的符号.
在gnuplot中添加这个的正确方法是什么?我尝试使用箭头玩箭头,但我是gnuplot的新手,似乎无法找到实现我需要的方法.
我刚刚将IntelliJ IDEA(终极版)升级到版本14.1,并且项目视图,菜单和对话框中使用的字体似乎无法正确呈现.为了防万一,我从我的14.0.3版本中导出了相同的设置,尽管它们看起来完全一样,但它仍然保持不变.我没有对JDK或任何东西做任何更改,如果我运行旧版本,字体会变回漂亮而清晰的字体.我正在使用Ubuntu 14.04.在Windows 7上不会发生此问题.
在IntelliJ IDEA 14.0.3下:
在IntelliJ IDEA 14.1下:

在新的字体中,字体似乎有点大(即使在两种情况下我都将它们设置为字体大小22,并且我从之前的IntelliJ IDEA安装中导入了设置).请注意,例如'g'是如何在下面切断的.还有其他问题,文本在按钮上未对齐,或在对话框中不完全可见.
通常我升级时不会发生这种情况.有没有办法让字体看起来像以前一样?在这个最新版本中有什么变化,我需要在启动脚本中做一些JVM切换吗?
更新:2015年5月11日
刚刚更新到IntelliJ 15,问题仍然存在.附上新截图.注意文本是如何在底部切出的,其中有p和y之类的字母,按钮文本是偏移的.
我正在使用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
我正在尝试为漂亮的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服务器路径进行硬编码的解决方案都不是我想要的.
什么是Scala 2.10.x中应该使用的标准平衡二叉搜索树实现?我环顾四周,它似乎已AVLTree被删除,并RedBlack已被弃用(Since version 2.10.0) use TreeMap or TreeSet instead.但是,TreeMap并TreeSet没有提供我需要的功能,因为我需要能够遍历树并基于此构建更复杂的数据结构.
是否有任何新类提供了不被弃用的普通平衡二叉树功能?
我有这个小脚本从页面获取专辑.这工作正常,直到今天我开始得到这个奇怪的错误:
未捕获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.
我整天都遇到了这个问题!我不认为这是一个暂时的问题.
好的我是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)
随着V1a对V1g等为每个单词的字符,并且V1bH1b …
apache ×1
apache-flink ×1
append ×1
avl-tree ×1
c ×1
crossword ×1
facebook ×1
fonts ×1
fopen ×1
fseek ×1
gnuplot ×1
intellij-14 ×1
intellij-15 ×1
java ×1
ldif ×1
mod-rewrite ×1
oauth ×1
php ×1
prolog ×1
prolog-dif ×1
redirect ×1
scala ×1
spring-boot ×1
stream ×1
xpath ×1
xquery ×1