小编Ani*_*n J的帖子

带有ruby on rails的$ redis全局变量

我使用redis作为读缓存.我创建了一个初始化器

配置/初始化/ redis.rb

$redis = Redis.new(:host => ENV["REDIS_HOST"], :port => ENV["REDIS_PORT"])
Run Code Online (Sandbox Code Playgroud)

我在unicorn.rb中使用this global来创建新的连接,无论何时创建新的worker.

before_fork do |server, worker|
  # clear redis connection
  $redis.quit unless $redis.blank?
end

# Give each child process its own Redis connection
after_fork do |server, worker|
  $redis = Redis.new(:host => ENV["REDIS_HOST"], :port => ENV["REDIS_PORT"])
end
Run Code Online (Sandbox Code Playgroud)

每当我需要访问我的redis服务器时,我也在使用这个全局变量.但我不习惯使用这个全局变量.有没有比使用全局变量更好的选择?

ruby ruby-on-rails redis

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

Angularjs Argument不是函数获取字符串

我是angularjs的新手.我正在构建一个应用程序,其中我的主页将有一个帖子列表.我想过将angularjs单独用于双向绑定.我从一个示例页面开始,但在这里遇到了问题.

我的示例页面.我正在为这个div使用ng-app,因为我不希望angularjs与页面的任何其他方面进行交互.

<div ng-app="posts">
  <ul class="post_list" ng-controller="PostController">
    <li ng-repeat="post in posts">
    {{post.title}}
    {{post.description}}
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个app.js文件

var app = angular.module('posts', []);
Run Code Online (Sandbox Code Playgroud)

和一个postcontroller.js文件

(function(angular, app) {
  // Define the Controller as the constructor function.
  console.log(app);
  console.log(angular);
  app.controller("PostController",["$scope"], function($scope) {
    $scope.posts = [
      {"title":"asdf", "description":"describe"},
      {"title":"second one", "description":"second describe"},
    ];
  });
})(angular, app);
Run Code Online (Sandbox Code Playgroud)

当我加载我的主页.我正进入(状态

错误:参数"PostController"不是函数.得到字符串[googlecdn path] angular.min.js:16

我在这里缺少什么 请帮助我,因为我完全困惑.我是angularjs的新手,也是javascript的新手.

javascript modularity angularjs

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

报告定义具有无效的目标命名空间rsInvalidReportDefinition

我使用Visual Studio数据工具2015创建了一个ReportProject.当我使用报表向导创建report.rdl文件时,rdl文件具有2016的架构.我的报表服务器版本为12.0.4213.0.

如何创建与我的报告服务器兼容的report.rdl.我尝试通过右键单击项目 - >属性并将targetserverversion更改为"Sql server 2008 R2,2012或2014"来更改TargetServerVersion.但这也不起作用.

sql-server visual-studio reporting-services ssrs-2012 sql-server-2012-datatools

18
推荐指数
3
解决办法
4万
查看次数

Angularjs $ document [0] .activeElement而不是$ document.activeElement

我正在使用angularjs编写占位符指令.

在单击处理程序上,我想检查元素和document.activeElement是否相同.

我试图用$docuemnt.activeElement它,但它总是undefined.但是当我使用时,$document[0].activeElement我正在获得当前活跃的元素.

$document[0].activeElement访问当前活动元素的正确方法吗?或者我做错了什么?

javascript angularjs angularjs-directive

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

仅使用nginx进行简单的CSRF保护

我有一个nginx服务器提供纯HTML和JS文件.

然后,js代码从API服务器调用各种REST API到GET/POST数据.

如果nginx收到对/ api/location的请求,它会将请求转发给另一个处理所有API的服务器.这个api服务器是用Ruby on Rails构建的.

由于我的所有纯HTML页面都是由nginx直接提供的,因此在呈现时我无法进行服务器端会话.

我该怎么做才能防止CSRF攻击?

architecture security xss csrf csrf-protection

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

Android menuitem onclick处理程序的返回值

在android中我在xml中定义了menuitem的onclick处理程序

<item
    android:id="@+id/context_menu"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/word_context_menu_title"
    android:onClick="deleteItem"/>
Run Code Online (Sandbox Code Playgroud)

在相应的活动中,我使用以下签名定义了一个函数deleteItem.

public boolean deleteItem(MenuItem item){
    logger.info("delete button clicked");
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是返回值表示什么?在哪种情况下我应该返回true,在哪种情况下我应该返回false?

android android-listview

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

Angularjs $ http等待响应

我是javascript/angularjs的新手.我想在一些元素上完成鼠标悬停时显示一个引导弹出窗口.

我为此创建了一个指令

(function(angular, app) {
  app.directive('popOver',["$window","$http",function($window,$http){
    return function(scope,elem,attrs){
      elem.on('mouseover',function(){
        console.log('mouseover');
        var data = scope.$apply(attrs.popOver);
        console.log('in directive again');
        console.log(data);
      });
    };
  }]);
})(angular, app);
Run Code Online (Sandbox Code Playgroud)

指令的值是一个函数

<span class="asdf" pop-over="getVCard(id)">name</span>

函数vcard(id)在我的angularjs控制器中定义.它检查数据是否已存在于localstorage中,如果存在,则返回数据.否则它会执行$ http get请求并将数据存储在localstorage中.

$scope.getVCard = function(id){

  var vcardKey = vcardKeyPrefix+id;

  var vCardFromLS = localStorageService.get(vCardKey);
  if(vCardFromLS){
    return localStorageService.get(vCardKey);
  }

  $http.get(app.common.vcardUrl(id)).
    success(function(data){
      localStorageService.set(vCardKey,data);
    }).
    error(function(error){
      F1.common.error(data,function(){});
    });

    return localStorageService.get(vCardKey);
};
Run Code Online (Sandbox Code Playgroud)

由于$ http返回promise,我在我的指令中获得了undefined值.如何确保函数getVCard同步返回?

我在google搜索后阅读了一些结果.但建议的想法是使用回调.但我不确定回调将如何使这种同步.任何帮助表示赞赏.

更新1(响应Foo L'的评论)我计划在多个地方使用相同的指令.弹出用于vcards和产品信息等.唯一不同的是pop-over指令的参数.这样,该指令将只是显示弹出窗口.获取数据的位置将在传递给指令的单独函数中

javascript asynchronous promise angularjs angularjs-directive

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

Redis与铁轨.在分叉错误后,您需要重新连接到Redis

我正在使用Redis和我的Rails应用程序.我也安装了sidekiq gem.我的redis服务器在默认端口的同一台机器上运行.

我创建了一个初始化程序,可以使redis lient初始化.

配置/初始化/ redis.rb

$redis = Redis.new(:host => 'localhost', :port => 6379)
Run Code Online (Sandbox Code Playgroud)

我有另一个初始化程序,用于设置系统中当前活动的帐户数.

配置/初始化/ z_account_list.rb

$redis.set('accounts',Account.count);
Run Code Online (Sandbox Code Playgroud)

在我的一个观点中,我正在使用这段代码.

<div class="more-text">and <%= "#{$redis.get('accounts')}" %> more...</div>
Run Code Online (Sandbox Code Playgroud)

当我在redis中手动设置帐户的值而不使用初始化程序时,一切正常.但是当我添加初始化程序时,我得到了

ActionView::Template::Error (Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.):
Run Code Online (Sandbox Code Playgroud)

我搜索了错误.但大多数解决方案都用于resque,并与after_fork有关.因为我是Rails和Redis的新手,因为我不使用Resque,所以我有点困惑.请帮我解决这个问题.

ruby-on-rails redis sidekiq

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

c ++有序(稳定)优先级队列

我正在实现一个玩具调度程序,它读取进程规范的输入文件,如到达时间,总运行时间,然后根据随机io/cpu突发调度进程.

该文件的格式

到达时间,总CPU时间,CPU突发,IO突发.

现在,当有两个具有相同到达时间的进程时,调度程序必须首先调度该进程,该进程首先在文件中提到.

我将文件中的条目保留在优先级队列中.

struct EventComparator{
  bool operator()(const Event* event1, const Event* event2){
    return event1->getTimestamp() >= event2->getTimestamp();
  }   
};  
priority_queue<Event*, vector<Event*>, EventComparator> eventQueue;
Run Code Online (Sandbox Code Playgroud)

其中Event只是一个封装过程参数的对象.

我的问题是,优先级队列不稳定.稳定我的意思是过程的顺序颠倒过来.

假设输入文件有

60 200 5 20

60 20 10 10

40 100 10 40

0 200 40 90

如果我从优先级队列弹出,我期待Line4,第3行,第1行,然后是Line2.但我得到了Line4,Line3,Line2,Line1.

我的问题是,我该怎么做才能获得稳定的优先级队列?

c++ sorting algorithm stl priority-queue

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

Angularjs从现在的日期值自动刷新momentjs

我是UI开发的新手,我必须开发一个页面,其中包含许多具有创建日期的帖子.创建日期相对于当前时间显示,如"从现在开始3小时"

对此链接进行了审核,并且能够成功完成此操作.但我想每30秒从现在的值刷新一次.这该怎么做.作者回答说

我会说你必须采取另一个tac,并在范围中添加一个额外的属性 - 让我们称之为reply.fromNow - 并使用矩库定期更新控制器中的值.

但我无法从中获益.有人可以帮我解决这个问题吗?谢谢.

javascript angularjs momentjs

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