小编Fra*_*fka的帖子

SSE (EventSource) 在 1 小时 22 分钟后超时。有什么办法可以让它持久吗?

我的页面中有一个区域,当数据库发生更改时,消息会发送到该区域。现在,有时数据库会发生很大变化,以至于每 10 分钟就会显示一条新消息;其他日子它只会改变几次。我遇到的问题是 EventSource 似乎在 1 小时 22 分钟后超时,浏览器将不再收到通知。

我想知道是否有办法保持 EventSources 持久(即,只要浏览器显示页面,EventSource 是活动的)。根据我在 Google 搜索中发现的内容,EventSources 应该保持活动状态,直到选项卡/窗口关闭。不幸的是,我在 Google 搜索中找到的东西似乎很少,而对我而言,情况似乎并非如此。

javascript firebug server-sent-events

8
推荐指数
2
解决办法
5153
查看次数

Java中的局部变量与全局变量同名

我正在尝试了解 Java 中的作用域。在 Perl 中,我可以执行以下操作:

my $x = 1;
{
    my $x = 2;
    say $x; # prints 2
}
say $x; # prints 1
Run Code Online (Sandbox Code Playgroud)

换句话说,由于我my在作用域内声明了变量 $x,因此该作用域中的 $x 变量是该作用域的本地变量(即,与全局 $x 变量不是同一变量)。现在,在Java中我尝试做类似的事情,但我收到错误

变量 rawURL 已在方法 run() 中定义

这是代码:

// Global rawURL
URI rawURl;
try {
  rawURL = new URI("http://www.google.com");
} catch (Exception e) {
  // Handle later
}

// Some time later
for (Element link : links) {
  // rawURL in this scope
  URI rawURL;
  try {
    rawURL = …
Run Code Online (Sandbox Code Playgroud)

java variables scope

6
推荐指数
1
解决办法
4466
查看次数

SQLite 是否支持模式(即 Postgres 意义上的模式)?

这是一个很难寻找的东西。我搜索了SQLite schema(显然不好)、、SQLite namespaceSQLite named database,但一无所获。基本上,我有一堆不同的名为 info 的表,并且在 Postgres 中,每个表都位于单独的模式中(例如,student.infoteacher.info等)。我只是想知道 SQLite 是否有类似于 Postgres 模式的东西。

sqlite schema

6
推荐指数
1
解决办法
2054
查看次数

将一个JSON模式映射到不同的JSON模式

我有一堆JSON文件,数千种不同的模式.使用GenSON(Python JSON模式生成器),我设法为每个输入文件创建模式文件.现在,我想要做的是将所有这些不同的文件标准化为一个定义的模式.这是一个例子:

输入

{
     "name": "Bob Odenkirk",
     "title": "Software Engineer",
     "location": {
         "locality": "San Francisco",
         "region": "CA",
         "country": "United States"
     },
     "age": 62,
     "status": "Active"
}
Run Code Online (Sandbox Code Playgroud)

产量

{
     "names": ["Bob Odenkirk"],
     "occupations": ["Software Engineer"],
     "locations": ["San Francisco, CA"]    
}
Run Code Online (Sandbox Code Playgroud)

本质上,我正在寻找一种语言无关的方法(即,我不关心使用什么编程语言)定义如何将输入JSON文件解析为输出JSON文件.

json json-ld

6
推荐指数
1
解决办法
2548
查看次数

Mojolicious 动态路由动作取决于状态

我正在使用 Mojolicious::Plugin::Authentication 来处理我的应用程序中的身份验证。我正在尝试为斜杠 '/' 设置一个路由,如果经过身份验证,它将有一个控制器/操作,如果没有,则另一个(即,根据您是否通过身份验证,您会转到不同的页面。)我不确定如何实现这一目标。以下是我尝试过的一些事情:

$r->any('/')->to(cb => sub {
    my $self = shift;

    if ( $self->is_user_authenticated ) {
      $self->redirect_to('member#index');
    }
    else {
      $self->redirect_to('guest#index');
    }
});
Run Code Online (Sandbox Code Playgroud)

和...

my $logged_in = $r->under (sub {
    my $self = shift;

    if (!$self->session("username")) {
        return undef;
    }
    else {
        return 1;
    }
});

if ( $logged_in ) {
    $logged_in->get('/')-to(controller => 'Member', action => 'index');
}
else {    
    $r->get('/')->to(controller => 'Guest', action => 'index');
}
Run Code Online (Sandbox Code Playgroud)

我不必使用 Mojolicious::Plugin::Authentication。我可以轻松设置会话令牌并自行检查。无论哪种方式,问题仍然存在:如何为给定路线创建动态操作?

附录

忘了补充,我也试过这个:

my $auth = $r->under('/' => sub { …
Run Code Online (Sandbox Code Playgroud)

perl mojolicious

5
推荐指数
1
解决办法
343
查看次数

处理不同语言的月份名称

我输入了许多不同格式的日期。我基本上是在尝试采用所有不同的格式并将它们标准化为 ISO 8601 格式。

如果日期包含月份名称,例如三月,那么我将使用以下函数来获取月份编号,例如 03。

month = String.valueOf(Month.valueOf(month.toUpperCase()).getValue());
Run Code Online (Sandbox Code Playgroud)

无论如何,我遇到的问题是月份名称有许多不同的语言,没有说明它们将是什么语言。运行上述函数时出现以下错误:

Caused by: java.lang.IllegalArgumentException: No enum constant java.time.Month.AUGUSTI
    at java.lang.Enum.valueOf(Enum.java:238)
    at java.time.Month.valueOf(Month.java:106)
Run Code Online (Sandbox Code Playgroud)

是否有任何库可以处理多种不同语言的月份名称,返回数值,甚至只是将月份名称翻译成英文?

这是输入日期的示例:

1370037600
1385852400
1356994800
2014-03-01T00:00:00
2013-06-01T00:00:00
2012-01-01
2012
May 2012
März 2010
Julio 2009
Run Code Online (Sandbox Code Playgroud)

java datetime translation date-parsing java-time

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

登录后重定向到上一页?Mojolicious

标题几乎总结了我的问题.我有我的登录控制器,我想在登录后重定向到上一页.例如,如果我正在查看"联系我们"页面,那么我登录后,我想重定向回"联系我们"页面.只是想知道实现这一目标的最佳方法.

perl redirect mojolicious

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

SQLAlchemy back_populates 具有多个关联的多对多(标签表)

我的问题:由于标签通过关联表连接到多个表,我会back_populates在标签上放置什么。还back_populates需要上关联表吗?我不确定如何back_populates在这种情况下建模。请参阅下文了解更多详情。

我有以下表结构:

在此输入图像描述

本质上,我可以将标签应用于源或源密钥。这是我的模型:

class Tag(Base):
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, index=True)

source_tag_assoc = Table('source_tag_assoc', Base.metadata,
    Column('source_id', Integer, ForeignKey('source.id')),
    Column('tag_id', Integer, ForeignKey('tag.id'))
)
class Source(Base):
    id = Column(Integer, primary_key=True, index=True)
    tags = relationship("Tag", secondary=source_tag_assoc, back_populates="source")

source_key_tag_assoc = Table('source_tag_assoc', Base.metadata,
    Column('source_id', Integer, ForeignKey('source_key.id')),
    Column('tag_id', Integer, ForeignKey('tag.id'))
)
class SourceKey(Base):
    id = Column(Integer, primary_key=True, index=True)
    tags = relationship("Tag", secondary=source_key_tag_assoc, back_populates="source_key")
Run Code Online (Sandbox Code Playgroud)

sqlalchemy python-3.x

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

Python 字典仅在定义值时更新

如果我运行以下代码:

import json

foo = [
    {
        "name": "Bob",
        "occupation": "",
        "standing": "good",
        "locations": ["California"],
        "meta": { "last_updated": "2018-01-15" }
    },
    {
        "name": "",
        "occupation": "Carpenter",
        "standing": "bad",
        "locations": ["Arizona"],
        "meta": { "last_updated": "2018-01-15", "email": "bob@domain.com" }
    },
]

output = {}
for i in foo:
    output.update(i)
print json.dumps(output)
Run Code Online (Sandbox Code Playgroud)

最终输出是:

{
    "locations": [
        "Arizona"
    ],
    "meta": {
        "email": "bob@domain.com",
        "last_updated": "2018-01-15"
    },
    "name": "",
    "occupation": "Carpenter",
    "standing": "bad"
}
Run Code Online (Sandbox Code Playgroud)

那很好。但是,我试图弄清楚如何将函数传递给更新方法,该方法基本上表示“仅在值已定义/不为空时更新”。因此,在第一次迭代中,名称是“Bob”,而在第二次迭代中,名称仍然是 Bob,因为名称本质上是未定义的。

最终输出如下所示:

{
    "locations": [
        "Arizona"
    ],
    "meta": {
        "email": …
Run Code Online (Sandbox Code Playgroud)

python dictionary data-structures

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

如何在多台服务器上使用布隆过滤器?

我有 50 个 EC2 实例都在爬网。现在他们在后端使用 Redis 来跟踪已经被抓取的 URL;但是,ElastiCache 的成本越来越高,而且我一直遇到打开连接过多的问题。我一直在考虑将布隆过滤器实现为后端,但我不明白如何做到这一点,以便所有 50 台服务器共享相同的布隆过滤器。我不希望每个人都有自己独立的布隆过滤器,否则他们基本上都在做相同的任务。

java web-crawler bloom-filter

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