我是javascript世界的新手.最近我正在使用nodejs中的聊天应用程序.所以我有一个名为gracefulshutdown的方法,如下所示.
var gracefulShutdown = function() {
logger.info("Received kill signal, shutting down gracefully.");
server.close();
logger.info('Disconnecting all the socket.io clients');
if (Object.keys(io.sockets.sockets).length == 0) process.exit();
var _map = io.sockets.sockets,
_socket;
for (var _k in _map) {
if (_map.hasOwnProperty(_k)) {
_socket = _map[_k];
_socket.disconnect(true);
}
}
...code here...
setTimeout(function() {
logger.error("Could not close connections in time, shutting down");
process.exit();
}, 10 * 1000);
}
Run Code Online (Sandbox Code Playgroud)
以下是断开连接侦听器中发生的情况.removeDisconnectedClient方法只是更新数据库中的条目以指示已删除的客户端.
socket.on('disconnect',function(){removeDisconnectedClient(socket);});
因此,在这种情况下,并未针对所有套接字触发disconnect事件.它是从阵列中随机抽出的几个套接字.虽然我能够在队友的帮助下使用setTimeout(fn,0)修复它.
我在网上阅读了它,并且只了解setTimeout通过将代码添加到事件队列末尾来延迟代码的执行.我读了关于javascript上下文,调用堆栈,事件循环.但是我不能把这一切都放在一起.我真的不明白为什么以及如何发生这个问题.有人可以详细解释一下.什么是解决或避免它们的最佳方法.
我试图在我的窗户上安装Octopress.根据他们的网站上的教程.但是当我输入命令时
rake install
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
C:\Documents and Settings\admin\octopress>rake install
rake aborted!
You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. U
sing bundle exec may solve this.
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
并且因为错误说我需要安装rake 0.9.2我尝试使用以下命令.
C:\Documents and Settings\admin\octopress>gem install rack -v=0.9.2.0
ERROR: Could not find a valid gem 'rack' (= 0.9.2.0) in any repository
ERROR: Possible alternatives: rack
Run Code Online (Sandbox Code Playgroud)
我已经在我的电脑上安装了Ruby&Gems.但我无法弄清楚如何解决这个问题.我如何使用"捆绑exec"来安装Octopress?
这似乎是一个重复的问题,但事实并非如此.我在其上发现了一些start-stop-daemon没有创建PID文件的文章.但就我而言,我已经创建了PID文件.我在服务器上执行此命令以启动Nginx:
/mnt/nginx/logs/nginx.pid
start-stop-daemon --start --quiet --pidfile /mnt/nginx/logs/nginx.pid --exec /usr/local/sbin/nginx
Run Code Online (Sandbox Code Playgroud)
PID文件已存在但仍未start-stop-daemon写入文件.我甚至尝试使用该--make-pidfile选项,但随后start-stop-daemon写入错误的pid到文件.
我正在尝试将GIF图像调整为不同大小.我在ruby中使用RMagick库.但是对于一些gif图像来说,即使我缩小GIF,文件大小也会增加.我正在以相同的宽高比调整图像图像的大小.这是我的代码.
require 'rmagick'
path = "/path/to/file/"
s_image = "image.gif" # image is 320*320
t_image = "t.gif"
file_name = path+s_image
file = File.new(file_name)
list = Magick::ImageList.new.from_blob file.read
list = list.coalesce.remap
list.each do |x|
x.resize_to_fill!(256,256)
end
File.open("#{path+t_image}", 'wb') { |f| f.write list.to_blob }
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我在JSON对象中以此格式获取时间数据.
"created_time": "2012-04-01T15:02:52+0000"
Run Code Online (Sandbox Code Playgroud)
我需要将这种格式转换为一些可读的时间格式
3:02 PST 1 April, 2012
Run Code Online (Sandbox Code Playgroud)
所以用户理解它.我使用Jquery来处理这些数据.我试过这样做,但我不明白它是哪种时间格式!
我有一个包含多字节字符的文件.由于文件非常大,我想从这个文件中删除4字节的utf字符.我需要一个更快的解决方案来实现它.我为此任务尝试了以下java代码,但它为Java堆空间提供了内存不足异常.所以
import java.util.*;
import java.io.*;
public class A{
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
char[] c_array;
String c_string;
byte[] c_byte_array;
c_array = str.toCharArray();
for (char c : c_array){
c_string = Character.toString(c);
c_byte_array = c_string.getBytes("UTF-8");
if (c_byte_array.length <= 3){
System.out.print(c_string);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法改善这个或其他更快更好的方法来做到这一点.我也试过这个grep命令
grep -o -P "[\x10000-\x10ffff]" myfile
Run Code Online (Sandbox Code Playgroud)
但它退出时出错
grep: range out of order in character class
Run Code Online (Sandbox Code Playgroud)
所以我的问题是上面的正则表达式有什么问题.或者换句话说什么是匹配4字节utf字符的正则表达式.另一个问题是上述哪种方法可以更有效地删除4字节字符
我有一个号码
例如:
8183
Run Code Online (Sandbox Code Playgroud)
我需要的是将它转换为浮点数 -
例如8183
(8183).toFixed(2);
Run Code Online (Sandbox Code Playgroud)
会回来的
8183.00
Run Code Online (Sandbox Code Playgroud)
但我需要进一步截断它,所以最终的数字将是
8.18
Run Code Online (Sandbox Code Playgroud)
所以基本上我需要使用只有2位小数的浮点数.我尝试使用Math.floor和ceil,但无法弄明白!