@Scheduled 定时任务
每5分钟执行一次 @Scheduled(cron = "0 0/5 * * * ?") 每一小时执行一次 @Scheduled(cron = "0 0 * * * ?") 每一天执行一次 @Scheduled(cron = "0 0 0 * * ?")
每5分钟执行一次 @Scheduled(cron = "0 0/5 * * * ?") 每一小时执行一次 @Scheduled(cron = "0 0 * * * ?") 每一天执行一次 @Scheduled(cron = "0 0 0 * * ?")
AndroidManifest.xml 1.添加jar包 在libs目录下添加sdk中的jar包 将Demo中的jniLibs目录复制到 main文件夹下 2.需要添加权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 3.build.gradle 添加配置 ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" } 4.页面 <com.tencent.smtt.sdk.WebView android:id="@+id/web_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingLeft="5dp" android:paddingRight="5dp" /> 5.Activity package com.sykj.article.articlesystem; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import com.tencent.smtt.sdk.QbSdk; import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.sdk.WebViewClient; public class MainActivity extends AppCompatActivity { private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.web_view); initX5WebView(); webView = findViewById(R.id.web_view); //防止跳转到系统浏览器 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { loadurlLocalMethod(view, url); return false; } }); webView.loadUrl("http://www.baidu.com"); } public void loadurlLocalMethod(final WebView webView, final String url) { new Thread(new Runnable() { @Override public void run() { webView.loadUrl(url); } }); } private void initX5WebView() { //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。 QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() { @Override public void onViewInitFinished(boolean arg0) { if (arg0) { Log.d("ArticleSystem", "X5 内核加载成功"); } else { Log.d("ArticleSystem", "X5 内核加载失败"); } } @Override public void onCoreInitFinished() { } }; //x5内核初始化接口 QbSdk.initX5Environment(getApplicationContext(), cb); } } 完整配置 AndroidManifest.xml ...
查询当前系统设置的最大连接数 ulimit -n 配置 **1.配置 /etc/security/limits.conf ** 在文件中添加 * 代表所有用户 * soft nofile 65535 * hard nofile 65535 然后重启服务器 java HttpClient库 socket连接数不够用 出现异常 HttpHostConnectException
1.下载数据源 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2.备份数据源 cd /etc/yum.repos.d/ mv Centos-Base.repo Centos-Base.repo_back 3.复制新数据源 cp Centos-7.repo /etc/yum.repos.d/ cd /etc/yum.repos.d/ mv Centos-7.repo Centos-Base.repo 更新数据源 yum clean all yum makecache yum -y update
真机安装是提示 not attached 原因 硬盘挂载问题 解决方式 文字不会出现在屏幕下方。当我们在安装选择界面,也就是选择U盘启动的第一个界面,该界面上有三个选项: 1、Install CentOS 7 2、Test this media & install CentOS7 3、Troubleshooting 按一下 tab 键 下方出现一些文字 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet 修改为 并按下回车 vmlinuz initrd=initrd.img linux dd quiet 此时会出现电脑当前的硬盘 ctrl + alt + delete 重启电脑 进入安装界面 按 tab 键 修改 hd:LABEL=CentOS\x207\x20x86_64 为你电脑的硬盘 示例 vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet 然后按回车即可
问题描述 使用命令 ossfs xscloud /root/ossfs -ourl=http://oss-cn-shenzhen-internal.aliyuncs.com 提示 ossfs: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory debain9 没法使用ossfs将oss挂载到本地 原因是 ossfs 必须使用 openssl1.0 版本 而debain9 最低安装openssl1.1 的版本 解决办法 采用源码安装的方式即可 安装库 sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config 安装 git clone https://github.com/aliyun/ossfs.git cd ossfs ./autogen.sh ./configure make sudo make install 配置 配置请按照官方文档进行配置 亲测可用
debian开启root远程登陆 1.修改配置文件 配置文件: /etc/ssh/sshd_config中的PermitRootLogin属性 示例 PermitRootLogin yes 2.重启ssh服务 systemctl restart sshd 创建时间 2022年2月28日 更新时间 2022年2月28日
docker使用 1.常用命令 进入容器 docker exec -it 容器名 /bin/bash 查看容器列表 docker ps -a 创建时间 2024年2月18日 更新时间 2022年2月18日
dwsocket.h #pragma once #include <string> #include <sys/epoll.h> namespace dw { using namespace std; class Addr { public: int port; string ip; Addr(string ip, int port); Addr(); ~Addr(); friend ostream& operator<<(ostream &out, const Addr &addr); private: }; /* * 服务端Socket 完全异步 */ class ServerSocket { public: Addr *addr = NULL; int maxListenNum = 128;//最大监听数,libevent也是128 int epollSize = 65535;//epoll 的最大监听数 int maxEvents = 1024; int maxThread = 1; //最大线程数(socket开启时,会会根据cpu核心数,重新初始化该值) ServerSocket(int port); ~ServerSocket(); int start(); private: int socketfd = -1; int epollfd = -1; epoll_event* events; void initAddr(int port); int initSocket(); int initEpoll(); void setNonBlock(int fd); //设置非阻塞socket void initMaxThread(); void loopWait(); void addSocketFd(int fd); int initThreadPool(); //初始化线程池 }; } Addr.cpp ...
#include <iostream> #include <arpa/inet.h> #include <sys/epoll.h> #include <sys/socket.h> #include <unistd.h> using namespace std; #define MAX_EVENT_NUM 1024 int start_server() { int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_ANY); server_addr.sin_port = htons(8001); bind(sockfd, (struct sockaddr*) &server_addr, sizeof(server_addr)); listen(sockfd, 100); return sockfd; } void addfd(int epollfd, int fd) { struct epoll_event event; event.data.fd = fd; event.events = EPOLLIN | EPOLLET; epoll_ctl(epollfd, EPOLL_CTL_ADD, fd, &event); } void et(struct epoll_event *event, int num, int epollfd, int listenfd) { char buf[1024]; for (int i = 0; i < num; i++) { int sockfd = event[i].data.fd; if (sockfd == listenfd) { printf("新用户\n"); struct sockaddr_in clientaddr; socklen_t clilen = sizeof(clientaddr); int connfd = accept(listenfd, (struct sockaddr *) &clientaddr, &clilen); addfd(epollfd, connfd); } else { printf("以前的用户\n"); } } } int main(int argc, char **argv) { int sockfd = start_server(); struct epoll_event events[MAX_EVENT_NUM]; int epollfd = epoll_create(10); if (-1 == epollfd) { perror("创建文件描述符失败"); return 0; } addfd(epollfd, sockfd); while (1) { int ret = epoll_wait(epollfd, events, MAX_EVENT_NUM, -1); //返回活跃用户个数 if (ret < 0) { printf("epoll failure\n"); continue; } et(events, ret, epollfd, sockfd); } shutdown(sockfd, SHUT_RDWR); return 0; }