问题列表 - 第233493页

find_or_create ActiveRecord :: RecordNotUnique rescue retry无法正常工作

使用ruby 2.1.2和rails 4.1.4.我对数据库中的电子邮件列有一个独特的约束.如果存在竞争条件,其中一个线程正在创建用户而另一个线程同时尝试创建记录而不是唯一异常.我试图通过重试来处理此异常,以便在重试时它将在find_or_create中的SELECT期间找到客户.

但是,它似乎没有起作用.它没有重试,然后重新引发异常.

这是我最初在做的事情:

retries = 10
begin
  user = User.find_or_create_by(:email => email)
rescue ActiveRecord::RecordNotUnique
  retry unless (retries-=1).zero? 
  raise   
end
Run Code Online (Sandbox Code Playgroud)

然后我想可能数据库连接正在缓存SELECT查询结果,导致它认为用户仍然不存在并继续尝试创建它.为了解决这个问题,我尝试使用Model.uncached来禁用查询缓存:

retries = 10
begin
  User.uncached do
    user = User.find_or_create_by(:email => email)
  end
rescue ActiveRecord::RecordNotUnique
  retry unless (retries-=1).zero? 
  raise   
end
Run Code Online (Sandbox Code Playgroud)

`

这也行不通.我不知道还有什么办法可以解决这个问题?我应该增加重试吗?在重试之间添加睡眠延迟?有没有更好的方法来清除查询缓存(如果这是问题?)

有任何想法吗?

谢谢!

ruby activerecord ruby-on-rails

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

Pandas 解析非英文字符串日期

Pandas 非常擅长解析英文字符串日期:

In [1]: pd.to_datetime("11 January 2014 at 10:50AM")
Out[1]: Timestamp('2014-01-11 10:50:00')
Run Code Online (Sandbox Code Playgroud)

我想知道当字符串使用另一种语言(例如法语)时,是否有一种简单的方法可以使用 Pandas 来做同样的事情:

In [2]: pd.to_datetime("11 Janvier 2016 à 10:50")
Run Code Online (Sandbox Code Playgroud)

值错误:未知的字符串格式

理想情况下,有一种方法可以直接在pd.read_csv.

python datetime pandas

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

GraphQL和中继过滤UI

提示

如果您使用中继构建Google日历,您将如何构建GraphQL架构和中继容器/组件以正确处理显示和隐藏多个日历?

试图

有人可能会想到这样的架构:

viewer {
  user {
    calendars(calendarIds: [String]) {
      edges,
        node {
          name,
          id,
          events(dates: [Date]) {
            ... edges, node, eventinfo...
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

所以,我可以下载所有日历和所有活动,或特定日历,或者你有什么.

构建中继容器和组件,我想象如下:

<CalendarView Container>
  <CalendarView>
    <WeekView> or <MonthView> or <Agenda> etc...
      <Event>
Run Code Online (Sandbox Code Playgroud)

这样CalendarView中继容器设置请求日历的片段,CalenderView组件用于setVariables切换视图中该日历的显示/隐藏.

我遇到的问题(并且让我的头脑旋转)是Day/ Week/ Month/ Agenda组件是组合视图 - 也就是说,它们需要来自所有选定事件的数据.

地图厚度

现在,这听起来很好 - CalendarView设置calendarId变量并将结果事件传递下来,对吧?嗯...有点儿.现在片段for CalendarView用一组构造calendarIds,这样calendar打开或关闭一个片段就会改变要获取的整个树.

GOTCHA?

据我所知,中继将每种组合calendarIds视为完全不同的提取.因此,当我切换一个新的时,id它会获取所有事件,即使对于我已经提取的那些日历也是如此.

放入代码:

fragment calendar(calendarIds: [1, …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql relayjs

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

如何在VS Code中自动格式化Ruby或.erb文件?

我在Visual Studio Code for macOS中按+ + F,格式化文档的快捷方式,格式化一个名为foo.rb或的文件foo.html.erb.

它没有格式化文档,而是打印出这封信: Ï

如何使其格式化文档?

html ruby ruby-on-rails ruby-on-rails-3 visual-studio-code

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

为什么有一个元素没有显示?

我正在练习在数组中创建一个随机生成的整数,然后随机化数组中的元素.当我打印数字时,一切都很好,但是当我显示随机元素时,似乎有一个元素无法打印.我有遗漏的一步吗?

public class shufflingArrays {
public static void main(String[] args) {


    int[] myList = new int[10];
    System.out.println("Numbers:");
    for(int i = 0; i < myList.length; i++) {
        myList[i] = (int)(Math.random() * 100);
        System.out.print(myList[i] + " ");
    }
    System.out.println("\nRandomized:");

    for (int i = myList.length - 1; i > 0; i--){
        //Generate index j randomly with 0 <= j <= i
        int j = (int)(Math.random() * (i + 1));

        //Swap myList[i]; with myList[j]
        int temp = myList[i];
        myList[i] = myList[j];
        myList[j] = temp; …
Run Code Online (Sandbox Code Playgroud)

java arrays random

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

如何解开文件(git和git GUI)

我正在使用git GUI(与Git bash一起使用).现在,我知道如果我想忽略git的文件,我必须将它们放在.gitignore文件中.

1)我已经知道windows中的git不会为你创建一个.gitignore文件,你必须自己创建它.git GUI也不会这样做.它是否正确?

现在我的特殊情况:

我在管理这个项目的过程中犯了一个错误,并且与我的.c和.h文件一起,我还跟踪了另一个文件(我们称之为"shouldnottrack.file").此文件由构建过程生成,因此原则上不应跟踪.

但我做了它,它被包含在提交中(暂停,提交等).

现在,我想要解开这个文件.

我已经做了暂时的工作,git checkout -- shouldnottrack.file但这只能工作一次

2)我怎样才能解开这个档案?(GUI,命令,任何方法ok)

3)如果我在.gitignore文件中包含此文件,git会自动取消跟踪吗?

谢谢

git git-gui

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

PHP 7:MongoDB驱动程序问题

我尝试安装MongoDB PHP库时遇到错误:

$ composer require "mongodb/mongodb=^1.0.0"

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mongodb.so' - /usr/lib/php/20151012/mongodb.so: undefined symbol: …
Run Code Online (Sandbox Code Playgroud)

php apache mongodb

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

无法在Node / Express / Pug应用中获取CSS

我正在使用Express和Pug(以前的Jade)创建我的第一个Node应用程序。除了让我的css文件在浏览器上运行之外,其他所有程序都工作正常。(错误404:GET http:// localhost:3000 / css / syles.css

项目结构:

server.js
views
    bag.pug
public
    css
      styles.css
Run Code Online (Sandbox Code Playgroud)

我的服务器js文件:

const pug = require('pug');
const path = require('path');
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

const inv = require('./api/pogoni/inventory');

// Set views path
app.set('views', path.join(__dirname, 'views'));
// Set public path
app.use(express.static(path.join(__dirname, 'public')));
// Set pug as view engine
app.set('view engine', 'pug');

// Player's index
app.get('/player', (req, res) => {
    res.render('player', {
        title: 'PLAYER Dashboard'
    });
});

// …
Run Code Online (Sandbox Code Playgroud)

javascript css node.js express pug

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

Java 8:如何将for循环转换为并行运行?

for (int i=0; i<100000; i++) {
    // REST API request. 
restTemplate.exchange(url, HttpMethod.GET, request, String.class);
}
Run Code Online (Sandbox Code Playgroud)

我有一种情况,我必须为10万用户请求一个资源,它需要70分钟才能完成.我试图尽可能地清理我的代码,我只能将它减少4分钟).

由于每个请求彼此独立,我很乐意并行发送请求(可能是10s,100s甚至1000s的块,每次快速完成).我希望我能把时间减少到10分钟或者接近的时间.如何计算哪个块大小可以快速完成工作?

我找到了以下方法,但我不知道该程序是否一次处理所有20个; 或一次5个; 或者一次10个.

IntStream.range(0,20).parallel().forEach(i->{
     ... do something here
});
Run Code Online (Sandbox Code Playgroud)

我知道你的帮助.我对任何建议或评论都持开放态度!

更新:我能够使用IntStream,并在28分钟内完成任务.但我不确定这是我能做的最好的.

java parallel-processing concurrency java.util.concurrent java-8

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

如何连接两个erlang节点?

有人可以为我提供更多关于如何连接两个Erlang节点的可能性.我知道使用erlang的一种方法:set_cookie/2并且如果有另一种方式则很好奇.

erlang

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