当前位置: 首页 > news >正文

中山建网站找哪家wordpress采集图片插件

中山建网站找哪家,wordpress采集图片插件,企业网站建设费计入,北京广告公司地址晚上七点#xff0c;煤矿调运的物流调度系统突然磁盘报名导致服务崩溃。系统用的是微服务#xff0c;没有详细操作说明#xff0c;也不敢动#xff0c;运煤车辆排起了长队#xff0c;只能联系厂家处理。好在经过30多分钟的处理#xff0c;服务终于启动#xff0c;系统运…晚上七点煤矿调运的物流调度系统突然磁盘报名导致服务崩溃。系统用的是微服务没有详细操作说明也不敢动运煤车辆排起了长队只能联系厂家处理。好在经过30多分钟的处理服务终于启动系统运行正常。经过排查是一台后端服务器存储了车辆图片导致磁盘满了数据库停止运行。以前也有类似的问题每次都会影响半个小时到一个小时。 作为程序员分析了该服务器存储的图片都是抓取的原始图片每张都在3-5M。十几万张图片如果压缩到几百k磁盘容量问题就应该解决了。跟厂家沟通了下图片只是最近七天的有用而且大部分都在一天内已经传到第三方平台可以压缩。 设计方案 遍历 d://ftp,下面的文件及文件夹找出 所有jpeg图片使用thumbnailator将图片压缩并替换源文件计算压缩前后的文件夹大小计算压缩比例记录处理日志写入 windows 任务计划程序使用多线程考虑生产服务器严格限制CPU和内存占用。 ​压缩前 ​压缩后 压缩后图片车牌依然可以被识别不影响使用 程序 public class App {private static final Logger logger LoggerFactory.getLogger(App.class);private static final int THREAD_POOL_SIZE Math.max(1, Runtime.getRuntime().availableProcessors() / 2);private static final AtomicInteger filesProcessed new AtomicInteger(0);private static int totalFilesToProcess 0;public static void main(String[] args) {// 创建log文件夹File logDir new File(log);if (!logDir.exists()) {logDir.mkdir();}logger.info(线程池大小{}, THREAD_POOL_SIZE);Scanner scanner new Scanner(System.in);System.out.println(请输入文件夹路径例如d:\\ftp:);String folderPath scanner.nextLine();File dir new File(folderPath);if (!dir.exists() || !dir.isDirectory()) {logger.error(文件夹路径不存在: {}, folderPath);return;}logger.info(开始处理文件夹: {}, folderPath);totalFilesToProcess countFiles(dir);long originalSize calculateDirectorySize(dir);logger.info(原始文件夹大小: {}, formatBytes(originalSize));logger.info(开始压缩图片);long startTime System.currentTimeMillis();ExecutorService executorService Executors.newFixedThreadPool(THREAD_POOL_SIZE);traverseDirectory(dir, executorService);executorService.shutdown();try {executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);} catch (InterruptedException e) {Thread.currentThread().interrupt();logger.error(线程池被中断: {}, e.getMessage());}long endTime System.currentTimeMillis();long compressedSize calculateDirectorySize(dir);logger.info(总耗时: {} 秒, (endTime - startTime) / 1000.0);logger.info(压缩后文件夹总大小: {}, formatBytes(compressedSize));double compressionRatio (compressedSize originalSize) ? 1.0 : (double) compressedSize / originalSize;logger.info(压缩比例: {}%, String.format(%.2f, compressionRatio * 100));logger.info(压缩图片完成);}public static void traverseDirectory(File dir, ExecutorService executorService) {File[] files dir.listFiles();if (files ! null) {for (File file : files) {if (file.isDirectory()) {traverseDirectory(file, executorService);} else if (isJpegFile(file.getName())) {executorService.submit(() - processImage(file));}}}}private static boolean isJpegFile(String fileName) {String lowerCaseName fileName.toLowerCase();return lowerCaseName.endsWith(.jpeg) || lowerCaseName.endsWith(.jpg);}private static void processImage(File file) {compressImage(file);int processed filesProcessed.incrementAndGet();if (processed % 100 0 || processed totalFilesToProcess) {logger.info(已处理 {} / {} 文件, processed, totalFilesToProcess);}}public static void compressImage(File file) {try {Thumbnails.BuilderFile builder Thumbnails.of(file);java.awt.image.BufferedImage originalImage builder.scale(1).asBufferedImage();int originalWidth originalImage.getWidth();if (originalWidth 1280) {double scale (double) 1280 / originalWidth;builder.scale(scale).outputQuality(0.6).toFile(file);logger.info(压缩图片: {}, file.getPath());}} catch (IOException e) {logger.error(处理图片时出错: {} - {}, file.getPath(), e.getMessage());}}/*** 计算文件夹大小* param dir* return*/public static long calculateDirectorySize(File dir) {long totalSize 0;for (File file : dir.listFiles()) {if (file.isDirectory()) {totalSize calculateDirectorySize(file);} else {totalSize file.length();}}return totalSize;}/*** 转换文件大小为可读格式* param bytes* return*/public static String formatBytes(long bytes) {String[] units {B, KB, MB, GB, TB};int i 0;while (bytes 1024 i units.length - 1) {bytes / 1024;i;}return String.format(%.2f %s, bytes / 1.0, units[i]);}/*** 计算文件夹下图片总数量* param dir* return*/public static int countFiles(File dir) {int count 0;for (File file : dir.listFiles()) {if (file.isDirectory()) {count countFiles(file);} else if (file.getName().toLowerCase().endsWith(.jpeg) ||file.getName().toLowerCase().endsWith(.jpg)) {count;}}return count;} } 稳定运行两个月磁盘空出200G。再也不用手忙脚乱地联系客服重启服务了。
http://www.w-s-a.com/news/678125/

相关文章:

  • 网站首页做后台链接有什么好用的模拟建站软件
  • 宁波有没有开发网站的公司网站上线除了备案还需要什么
  • 网站备案授权wordpress默认主体设置
  • 厦门微信网站广州推广策划公司
  • 集团公司网站开发asp网站怎么运行
  • 广州短视频网站开发东莞市建设信息网
  • 建设网站如果赚钱电脑可以做服务器部署网站吗
  • 网站建设的编程专门做面包和蛋糕的网站
  • 档案网站建设比较分析南京建站公司
  • 哪个网站可以做店招傻瓜式wordpress
  • 网站开发项目经理职责青岛模版网站建设
  • 企业建站哪个好网站建设所用程序
  • 网站建设seo视频定制图片软件
  • 404错误直接转向到网站首页四川省建筑施工企业人员考试平台
  • 手表电商网站智能展厅
  • 南海网站推广梅州做网站公司
  • 昆明专业网站建设公司成都外贸网站建设费用
  • php mysql网站开发项目公司网站宣传设计
  • 自己做网站服务器的备案方法怎么查网站点击量
  • 信息产业部icp备案中心网站织梦做双语网站
  • 爱站网站长seo综合查询工具局网站信息内容建设 自查报告
  • 我想建一个网站怎么建淄博网站推广那家好
  • 做网站和app需要多久河南自助建站建设代理
  • 大连做企业网站的公司宣传平台有哪些类型
  • 如何用微信做网站免费设计logo网站有哪些
  • 服务平台型网站余姚网站定制
  • 网站搭建联系方式太平阳电脑网网站模板
  • 请简述网站制作流程html5网络公司网站模板
  • 海尔集团企业网站建设分析重庆市建设银行网站
  • 介绍公司的网站有哪些广西壮族自治区