Vert.x内核模块 结束

本文介绍Vert.x命令行接口API,包括定义命令行接口、解析用户命令行及查询选项参数等内容。还介绍了如何使用注解定义CLI,扩展Vert.x启动器以及使用Launcher类。


Vert.x命令行接口API

Vert.x内核模块提供一个用向程序传递命令行参数的API。此API也可以打印出命令行工具可获取选项的详细帮助信息。既使此特性与Vert.x核心主题相差甚远,此APfat jarLauncher类中使用,并且也在vertx命令行工具中使用。此外此API支持多语言(在支持的语言中使用)并且在Vert.x Shell中被使用。

Vert.x CLI提供了用于描述命令行接口的模型和一个解析器。此解析器支持不同的语法:

  • POSIX选项(如tar–zxvf foo.tar.gz

  • GNU长选项(如du–human-readable –max-depth=1

  • 类似Java属性(如. java-Djava.awt.headless=true -Djava.net.useSystemProxies=true Foo

  • 伴有附加的值的短选项(例gcc -O2 foo.c

  • 但一连字号的长选项(如ant –projecthelp

使用CLI API有三步骤:

  1. 命令行接口的定义

  2. 用户命令行的解析

  3. 查询和提问

定义阶段

每个命令号接口必须定义一组将被使用的选项和参数。CLI AIP使用OptionArgument类描术选项和参数:
CLI cli = CLI.create("copy")

   .setSummary("A command line interface to copy files.")

   .addOption(new Option()

       .setLongName("directory")

       .setShortName("R")

       .setDescription("enables directory support")

       .setFlag(true))

   .addArgument(new Argument()

       .setIndex(0)

       .setDescription("The source")

       .setArgName("source"))

   .addArgument(new Argument()

       .setIndex(0)

       .setDescription("The destination")

       .setArgName("target"));

如我所见,可以用CLI.create方法创建一个CLI。传入的字符串是一个CLI名称。一旦创建,就可以设置概述和描述了。概术规定为一行较短文件,然而描述可包含更加详细信息。每个选项和参数在调用CLI对象的addArgumentaddOption方法被添加。

 选项

一个选项是一个用关键字标识的存在与用户命令行的命令行参数。选项至少必须有一个长名称和一个知名称。长名称通常使用前缀,然而短名称用于单一的­中划线(-)。选项能得到关于用法的可显示信息。选项可接收01或多个值。一个选项接收0个值是一个标识,要用setFlag进行声名。默认的,选项接收单一值,可以用setMultiValued方法配置选项接收多个值。

CLI cli = CLI.create("some-name")

   .setSummary("A command line interface illustrating the optionsvaluation.")

   .addOption(new Option()

       .setLongName("flag").setShortName("f").setFlag(true).setDescription("aflag"))

   .addOption(new Option()

       .setLongName("single").setShortName("s").setDescription("asingle-valued option"))

   .addOption(new Option()

       .setLongName("multiple").setShortName("m").setMultiValued(true)

       .setDescription("a multi-valued option"));

选项可以被标记为强制要求的,一个强制要求的选项没有在命令行上设置,将会在解析过程中抛出异常:

CLI cli = CLI.create("some-name")

   .addOption(new Option()

       .setLongName("mandatory")

       .setRequired(true)

       .setDescription("a mandatory option"));

非强制选项有一个默认值,如果用户在命令行上没有设置,将使用此默认值。

CLI cli = CLI.create("some-name")

   .addOption(new Option()

       .setLongName("optional")

       .setDefaultValue("hello")

       .setDescription("an optional option with a default value"));

选项使用setHidden方法可以隐藏。隐藏选项不会在用法中显示,但是仍然能在用户命令行中使用(仅用于超级用户)。

如果选项值限定为固定集合,可以设置不同的接收选项:

CLI cli = CLI.create("some-name")

   .addOption(new Option()

       .setLongName("color")

       .setDefaultValue("green")

       .addChoice("blue").addChoice("red").addChoice("green")

       .setDescription("a color"));

选项也可以用JSON形式初始化。

 参数

与选项不同,参数没有键,仅用他们的索引进行标识。例如java com.acme.Foo

com.acme.Foo是一个参数。参数没有名称,用基于0的索引进行标识,第一个参数索引为0

CLI cli = CLI.create("some-name")

   //will have the index 0

   .addArgument(new Argument()

       .setDescription("the first argument")

       .setArgName("arg1"))

   //will have the index 1

   .addArgument(new Argument()

       .setDescription("the second argument")

       .setArgName("arg2"));

argName是可选反并在用户信息中使用。

作为选项,Argument可以:

  • setHidden被隐藏。

  • setRequired被强制要求

  • setDefaultValue设置默认值

  • setMultiValued设置接收多个值,仅最后一个参数允许有多个值。

参数可以从JSON格式初始化。

 

用法信息生成

一旦CLI实例配置完成,就可以生成用法信息了:

CLI cli = CLI.create("copy")

   .setSummary("A command line interface to copy files.")

   .addOption(new Option()

       .setLongName("directory")

       .setShortName("R")

       .setDescription("enables directory support")

       .setFlag(true))

   .addArgument(new Argument()

       .setIndex(0)

       .setDescription("The source")

       .setArgName("source"))

   .addArgument(new Argument()

       .setIndex(0)

       .setDescription("The destination")

       .setArgName("target"));

 

StringBuilder builder = new StringBuilder();

cli.usage(builder);

产生的用法信息如下:

Usage: copy [-R] source target

 

A command line interface to copy files.

 

 -R,--directory  enables directorysupport

如果需要调试用法信息,检查UsageMessageFormatter类。

 

解析阶段

一旦CLI实例配置好,就可以解析用户命令行了,并分析每个选项和参数:

CommandLine commandLine =cli.parse(userCommandLineArguments);

 

parse方法返回一个包含值的CommandLine对象。默认的,CommandLine对象验证用户命令行并且检查每个强制选项和参数是否被设置,检查收到的每个选项的的值的个数。也可以传入false作为parse方法第二个参数禁用验证。这对于检查一个选项或者参数是否存在,和传入的命令行是不有效是有帮助的。也可以用CommandLineisValid方法检查是否有效。

 

查询/提问阶段

一旦解析,就可得到由pase方法返回CommnadLine对象中选项和参数的值:

CommandLine commandLine =cli.parse(userCommandLineArguments);

String opt =commandLine.getOptionValue("my-option");

boolean flag =commandLine.isFlagEnabled("my-flag");

String arg0 = commandLine.getArgumentValue(0);

如果有一个选项标识为“help”,并启用“help”选项,那么验证不会失败,但是会给予是否检查帮助信息的机会。

CLI cli = CLI.create("test")

   .addOption(

       newOption().setLongName("help").setShortName("h").setFlag(true).setHelp(true))

   .addOption(

       new Option().setLongName("mandatory").setRequired(true));

 

CommandLine line =cli.parse(Collections.singletonList("-h"));

 

// The parsing does not fail and let you do:

if (!line.isValid() &&line.isAskingForHelp()) {

 StringBuilder builder = new StringBuilder();

 cli.usage(builder);

 stream.print(builder.toString());

}

 

输入选项和参数

上面说明的OptionArgument类不必输入,意示着仅需要字符串值。

TypedOptionTypedArgument让你指定类型,所以原如字符串值被转成指定类型。在CLI定义中用TypedOptionTypedArgument替代OptiontArgument

CLI cli = CLI.create("copy")

   .setSummary("A command line interface to copy files.")

   .addOption(new TypedOption<Boolean>()

       .setType(Boolean.class)

       .setLongName("directory")

       .setShortName("R")

       .setDescription("enables directory support")

       .setFlag(true))

   .addArgument(new TypedArgument<File>()

       .setType(File.class)

       .setIndex(0)

       .setDescription("The source")

       .setArgName("source"))

   .addArgument(new TypedArgument<File>()

       .setType(File.class)

       .setIndex(0)

       .setDescription("The destination")

       .setArgName("target"));

然后你可以象下面这样接收转换后的值:

CommandLine commandLine =cli.parse(userCommandLineArguments);

boolean flag =commandLine.getOptionValue("R");

File source = commandLine.getArgumentValue("source");

File target =commandLine.getArgumentValue("target");

Vert.x CLI也可以转换成类:

  • 有一个单一字符串参数的构造器,与FileJsonObject类似

  • 俱有静态fromfromString方法

  • 具有静态valueOf方法,如基本类型和枚举类型

此外,也可以实现自己的转换器Converter并且让CLI使用此转换器:

CLI cli = CLI.create("some-name")

   .addOption(new TypedOption<Person>()

       .setType(Person.class)

       .setConverter(new PersonConverter())

       .setLongName("person"));

对于布尔值,布尔值可以被解析成true:on,yes,1,true。如果一个选项用enum作为类型,CLI将会自动计算选择的集合。

 

使用注解

也可以用注解定义CLI。在类或者setter方法上使用注解进行定义:

@Name("some-name")

@Summary("some short summary.")

@Description("some long description")

public class AnnotatedCli {

 

 privateboolean flag;

 privateString name;

 privateString arg;

 

 @Option(shortName = "f", flag =true)

 publicvoid setFlag(boolean flag) {

  this.flag = flag;

 }

 

 @Option(longName = "name")

 publicvoid setName(String name) {

  this.name = name;

 }

 

 @Argument(index = 0)

 publicvoid setArg(String arg) {

 this.arg = arg;

 }

}

注解完成,可以定义CLI并且注入值:
CLI cli = CLI.create(AnnotatedCli.class);

CommandLine commandLine =cli.parse(userCommandLineArguments);

AnnotatedCli instance = new AnnotatedCli();

CLIConfigurator.inject(commandLine, instance);

 

Vert.x启动器

Vert.x启动器(Launcher)被用于fat jar中的启动类,Launcher也被用在命令行工具中。Launcher执一个命令的集合,如run,bare,star…

 

扩展Vert.x启动器

仅可以在Java中,通过实现自己的Command扩展命令集:

@Name("my-command")

@Summary("A simple hello command.")

public class MyCommand extends DefaultCommand {

 

 privateString name;

 

 @Option(longName = "name", required = true)

 publicvoid setName(String n) {

   this.name = n;

 }

 

 @Override

 publicvoid run() throws CLIException {

   System.out.println("Hello " + name);

 }

}

并需要实现一个CommandFactory:

public class HelloCommandFactory extendsDefaultCommandFactory<HelloCommand> {

 publicHelloCommandFactory() {

  super(HelloCommand.class);

 }

}

然后创建src/main/resources/META-INF/services/io.vertx.core.spi.launcher.CommandFactory文件,并加一行用于指定完整有效的工厂名称

io.vertx.core.launcher.example.HelloCommandFactory

生成包含命令的jar包。并确定包含SPI文件

(META-INF/services/io.vertx.core.spi.launcher.CommandFactory)

然后将包含命令的jar放到fat-jar的类路径或者Vert.x发布的lib目录中,然后可以这样执行:

vertx hello vert.x

java -jar my-fat-jar.jar hello vert.x

 

fat ja中使用Launcher

为了在fat-jar中使用Launcher类,可以将MwgkANIFEST文件中的Main-Class设置为io.vertx.core.Launcher。此外设置MANIFESTMain-Verticle到主verticle

 

默认,Launcher执行run命令。然而,也可以在MAINFEST中设置Main-Command作为默认命令。如果启动fat-jar没有提供命令时请用默认命令。

 

Launcher子类

也可以创建一个Launcher的子类启动应用。此类被设计成极易扩展。一个Launcher的子类可以:

  • beforeStartingVertx方法定制vert.x配置

  • 重写afterStartingVertx获取通过run,bare命令创建的实例。

  • getMainVerticlegetDefaultCommand命令配置默认的verticle和命令。

  • registerunregister方法添加/移除命令

 

启动和退出码

在用Launcher类作为主类时,将会用到下面退出码:

  • 0,进程平滑结束或者一个未捕获的异常被抛出

  • 1,通用错误

  • 11Vert.x不能初始化

  • 12,大量进程不能启动,发现和关闭,此错误被用于start,stop命令

  • 14,系统配置不满足系统要求(如没找到java

  • 15,主verticle不能被布署。

Current Time: Tuesday, 02-Sep-2025 01:59:58 EDT Restart Time: Monday, 01-Sep-2025 15:55:18 EDT Parent Server Config. Generation: 1 Parent Server MPM Generation: 0 Server uptime: 10 hours 4 minutes 39 seconds Server load: 0.02 0.26 0.65 Total accesses: 14635 - Total Traffic: 1.4 GB - Total Duration: 1176684147 CPU Usage: u115.36 s31.58 cu0 cs0 - .405% CPU load .403 requests/sec - 39.7 kB/second - 98.3 kB/request - 80402.1 ms/request 51 requests currently being processed, 0 workers gracefully restarting, 99 idle workers Slot PID Stopping Connections Threads Async connections total accepting busy graceful idle wait-io writing keep-alive closing 0 9031 no 1 yes 8 0 17 0 0 0 0 1 9032 no 8 yes 8 0 17 0 0 0 0 2 9033 no 4 yes 6 0 19 0 0 0 0 3 9034 no 12 yes 13 0 12 0 0 0 0 4 9035 no 8 yes 8 0 17 0 0 0 0 5 12449 no 7 yes 8 0 17 0 0 0 0 Sum 6 0 40 51 0 99 0 0 0 0 ___W_W_WWWW___________W_W_W_W____WWW___W_W_W______W__W__________ _W_W__W___W_W__W__WW_WW_W_WWWWW__W______W_WW_WW_W____WW______W__ _W__W____WWW________WW Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of worker, "." Open slot with no current process Srv PID Acc M CPU SS Req Dur Conn Child Slot Client Protocol VHost Request 0-0 9031 0/78/78 _ 19.84 801 350 6448112 0.0 7.15 7.15 172.70.207.34 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2024/10/wsxc1728946325446_2-800x800.jpg 0-0 9031 0/83/83 _ 19.76 709 3 6674391 0.0 6.74 6.74 172.69.34.103 http/1.1 0-0 9031 0/82/82 _ 19.74 1002 610274 6678021 0.0 7.16 7.16 172.70.207.153 http/1.1 0-0 9031 1/80/80 W 19.73 152 0 6151009 0.0 6.37 6.37 172.70.94.142 http/1.1 blackjason7.co:443 GET /product/polo-ralph-lauren-double-knit-full-zip-hoodie-pant 0-0 9031 0/75/75 _ 19.85 618 280715 6093739 0.0 6.49 6.49 162.158.186.112 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 1/82/82 W 19.63 78 0 6068769 0.0 7.01 7.01 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 0/77/77 _ 19.76 796 200332 7111083 0.0 6.69 6.69 162.158.190.34 http/1.1 blackjason7.co:443 GET /product/loewe-sweater-in-cotton-and-cashmere/ HTTP/1.1 0-0 9031 1/80/80 W 19.80 228 0 5774831 0.0 6.64 6.64 172.69.33.192 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 1/84/84 W 19.80 44 0 6938140 0.0 7.29 7.29 141.101.84.167 http/1.1 blackjason7.co:443 GET /product-category/street-brand/tnf/ HTTP/1.1 0-0 9031 1/80/80 W 19.73 360 0 5897310 0.0 8.53 8.53 162.158.187.69 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2018/02/TB2TUwuh0zJ8KJjSspkXXbF7VXa_291 0-0 9031 1/73/73 W 19.73 258 0 5291737 0.0 6.13 6.13 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 0/82/82 _ 19.81 1002 600575 5698583 0.0 8.98 8.98 172.70.207.153 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2018/07/TB2wbN3iCcqBKNjSZFgXXX_kXXa_199 0-0 9031 0/85/85 _ 19.65 618 600182 6836821 0.0 8.74 8.74 162.158.186.112 http/1.1 0-0 9031 0/73/73 _ 19.74 1040 600109 5443129 0.0 6.81 6.81 162.158.91.133 http/1.1 0-0 9031 0/83/83 _ 19.66 947 3 4893120 0.0 7.94 7.94 172.70.210.201 http/1.1 0-0 9031 0/78/78 _ 19.66 418 675556 6512647 0.0 7.37 7.37 162.158.186.113 http/1.1 0-0 9031 0/74/74 _ 19.77 442 600144 6403366 0.0 5.59 5.59 162.158.167.82 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 0/88/88 _ 19.68 796 672482 6211838 0.0 8.24 8.24 162.158.186.113 http/1.1 0-0 9031 0/82/82 _ 19.85 443 3 4490568 0.0 7.30 7.30 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 0-0 9031 0/90/90 _ 19.86 418 600103 5984734 0.0 9.06 9.06 162.158.186.113 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 0-0 9031 0/94/94 _ 19.81 947 197407 6828751 0.0 9.15 9.15 172.70.210.201 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2021/06/20210420-i1618853265_986_6.jpg. 0-0 9031 0/85/85 _ 19.85 640 451888 5912282 0.0 6.47 6.47 172.71.223.67 http/1.1 blackjason7.co:443 GET /product/fear-of-god-essentials-denim-trucker-jacket/ HTTP/ 0-0 9031 1/83/83 W 19.65 730 0 6588105 0.0 6.16 6.16 198.41.227.136 http/1.1 blackjason7.co:443 GET /product/supreme-24ss-cracked-coaches-jacket/ HTTP/1.1 0-0 9031 0/88/88 _ 19.85 709 600181 5604439 0.0 9.22 9.22 172.69.34.103 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php?action=as_async_request_queue_run 0-0 9031 1/80/80 W 19.78 339 0 6277658 0.0 5.91 5.91 172.70.135.206 http/1.1 blackjason7.co:443 GET /product/balenciaga-3b-icon-track-pants/ HTTP/1.1 1-0 9032 0/101/101 _ 24.91 613 600182 9493049 0.0 6.81 6.81 172.70.210.22 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756791158.85450601577758789062 1-0 9032 1/105/105 W 24.88 258 0 8866446 0.0 10.32 10.32 172.70.211.146 http/1.1 blackjason7.co:443 GET /wp-admin/edit.php?post_type=shop_order HTTP/1.1 1-0 9032 0/98/98 _ 24.80 430 600186 8652363 0.0 8.50 8.50 162.158.186.112 http/1.1 1-0 9032 1/106/106 W 24.79 411 0 7517503 0.0 10.10 10.10 172.70.214.78 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 1-0 9032 0/101/101 _ 24.75 613 456019 8006983 0.0 10.67 10.67 162.158.187.114 http/1.1 1-0 9032 0/107/107 _ 25.02 615 218405 8982392 0.0 12.48 12.48 162.158.187.113 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/06/20220314_i1647201609_5410_8.jpg 1-0 9032 0/107/107 _ 25.00 642 497970 9701769 0.0 11.16 11.16 104.23.251.50 http/1.1 blackjason7.co:443 GET /wp-admin/edit.php?post_type=shop_order HTTP/1.1 1-0 9032 0/117/117 _ 25.00 294 3 7504472 0.0 11.73 11.73 162.158.167.144 http/1.1 1-0 9032 1/112/112 W 25.00 252 0 9676427 0.0 9.76 9.76 172.70.94.50 http/1.1 blackjason7.co:443 GET /brand/far-archive/page/86/?add-to-cart=192709 HTTP/1.1 1-0 9032 1/97/97 W 24.88 112 0 7081866 0.0 12.74 12.74 172.71.210.169 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/08/1-100x100.jpg100w,https://black 1-0 9032 1/97/97 W 24.79 512 0 8686013 0.0 8.97 8.97 162.158.167.26 http/1.1 blackjason7.co:443 GET /wp-admin/edit.php?post_type=shop_order HTTP/1.1 1-0 9032 0/118/118 _ 25.04 425 600042 8961663 0.0 10.76 10.76 162.158.187.130 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2018/10/IMG_9261-scaled.jpg HTTP/1.1 1-0 9032 0/95/95 _ 24.61 425 63045 8113248 0.0 8.91 8.91 162.158.187.130 http/1.1 1-0 9032 0/107/107 _ 25.03 435 113 9072404 0.0 9.34 9.34 104.23.251.95 http/1.1 blackjason7.co:443 GET /wp-content/plugins/ti-woocommerce-wishlist/assets/js/publi 1-0 9032 1/110/110 W 25.00 131 0 9074242 0.0 9.70 9.70 172.71.195.79 http/1.1 blackjason7.co:443 GET /product/saint-michael-x-vlone-sweatpants/ HTTP/1.1 1-0 9032 0/107/107 _ 25.11 40 600198 9671736 0.0 9.26 9.26 162.158.90.241 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756792157.57704591751098632812 1-0 9032 1/102/102 W 25.00 52 0 7707241 0.0 10.17 10.17 172.68.27.194 http/1.1 blackjason7.co:443 GET /new-arrivals/?product-page=129&add-to-cart=193196 HTTP/1.1 1-0 9032 0/112/112 _ 24.76 615 600131 7689009 0.0 12.35 12.35 162.158.187.113 http/1.1 1-0 9032 1/100/100 W 24.79 252 0 7625770 0.0 9.20 9.20 172.70.214.78 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 1-0 9032 0/113/113 _ 25.02 618 1 7437698 0.0 12.11 12.11 91.224.92.17 http/1.1 mark.safetohost.com:80 GET / HTTP/1.1 1-0 9032 0/96/96 _ 24.92 430 163950 8262119 0.0 10.20 10.20 162.158.186.113 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 1-0 9032 0/99/99 _ 24.76 40 1 8227022 0.0 10.35 10.35 162.158.90.241 http/1.1 1-0 9032 0/98/98 _ 25.04 294 287499 9037757 0.0 13.02 13.02 162.158.167.144 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 1-0 9032 0/101/101 _ 25.02 613 200272 8502293 0.0 8.47 8.47 162.158.187.114 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/06/20220314_i1647201609_5410_8.jpg 1-0 9032 0/99/99 _ 25.02 631 671040 9579403 0.0 8.62 8.62 172.69.34.198 http/1.1 blackjason7.co:443 GET / HTTP/1.1 2-0 9033 1/94/94 W 24.21 333 0 10597842 0.0 9.51 9.51 162.158.187.153 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/05/20220320-a1647786715409_0223.jp 2-0 9033 0/88/88 _ 24.12 387 668244 10385161 0.0 7.79 7.79 104.23.251.207 http/1.1 2-0 9033 0/98/98 _ 24.12 709 667744 10366782 0.0 8.66 8.66 162.158.90.145 http/1.1 2-0 9033 1/97/97 W 24.13 430 0 9089233 0.0 8.59 8.59 172.70.211.100 http/1.1 blackjason7.co:443 GET /new-arrivals/?product-page=134&add-to-cart=159985 HTTP/1.1 2-0 9033 0/91/91 _ 24.25 670 600104 11216852 0.0 8.21 8.21 172.71.195.29 http/1.1 blackjason7.co:443 GET /product-category/pants/ HTTP/1.1 2-0 9033 0/97/97 _ 24.11 694 600094 10272326 0.0 9.82 9.82 172.69.33.228 http/1.1 2-0 9033 0/111/111 _ 24.14 387 600228 8665304 0.0 11.29 11.29 172.68.211.75 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/03/25-%E9%93%B6%E8%89%B2-1-100x100 2-0 9033 0/90/90 _ 24.28 392 15 9367494 0.0 9.75 9.75 172.70.210.7 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2023/09/wsxc1694218269798_1-800x800.jpg 2-0 9033 0/87/87 _ 24.13 670 626847 10466438 0.0 7.06 7.06 172.71.195.29 http/1.1 2-0 9033 0/93/93 _ 24.26 596 4 10699232 0.0 9.38 9.38 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status HTTP/1.0 2-0 9033 0/93/93 _ 24.12 289 677570 10685077 0.0 7.93 7.93 172.68.174.228 http/1.1 2-0 9033 0/95/95 _ 24.29 375 600124 11396058 0.0 11.01 11.01 104.23.251.36 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756791822.45398807525634765625 2-0 9033 0/103/103 _ 24.24 709 600158 11685463 0.0 8.69 8.69 162.158.90.145 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756791488.27212309837341308593 2-0 9033 0/106/106 _ 24.25 616 229158 10496913 0.0 9.69 9.69 172.70.208.56 http/1.1 blackjason7.co:443 GET /wp-login.php HTTP/1.1 2-0 9033 0/99/99 _ 24.31 289 146048 10009644 0.0 9.17 9.17 172.68.174.228 http/1.1 blackjason7.co:443 POST /?wc-ajax=get_refreshed_fragments HTTP/1.1 2-0 9033 1/96/96 W 24.09 421 0 10141048 0.0 10.41 10.41 172.68.174.228 http/1.1 blackjason7.co:443 GET /?s=CHROME+HEARTS&post_type=product HTTP/1.1 2-0 9033 0/101/101 _ 24.31 311 505405 11353747 0.0 9.99 9.99 172.70.208.12 http/1.1 blackjason7.co:443 GET /product/rrr123-the-biography-tee/ HTTP/1.1 2-0 9033 1/97/97 W 24.12 243 0 9849521 0.0 8.86 8.86 172.70.211.5 http/1.1 blackjason7.co:443 GET / HTTP/1.1 2-0 9033 0/97/97 _ 24.24 718 600068 10727172 0.0 8.50 8.50 162.158.186.113 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 2-0 9033 0/117/117 _ 24.24 694 600137 11607358 0.0 11.39 11.39 172.69.33.228 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/03/20220302-i1646222402_8079_2.jpg 2-0 9033 1/96/96 W 24.22 243 0 10155128 0.0 10.35 10.35 172.70.211.29 http/1.1 blackjason7.co:443 GET / HTTP/1.1 2-0 9033 0/104/104 _ 24.06 718 4 9535132 0.0 10.50 10.50 162.158.186.113 http/1.1 2-0 9033 0/96/96 _ 23.96 616 49 8716508 0.0 8.40 8.40 172.70.208.56 http/1.1 2-0 9033 0/89/89 _ 23.99 375 82074 8657444 0.0 9.76 9.76 104.23.251.36 http/1.1 2-0 9033 1/93/93 W 24.21 374 0 9761985 0.0 9.37 9.37 162.158.79.22 http/1.1 blackjason7.co:443 GET /product/goyard-cap-vert-pm-bag/ HTTP/1.1 3-0 9034 0/110/110 _ 26.12 135 39 9428601 0.0 9.57 9.57 162.158.186.48 http/1.1 3-0 9034 1/103/103 W 26.37 353 0 9729634 0.0 8.21 8.21 162.158.187.154 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/05/20220320-a1647786715409_0223.jp 3-0 9034 0/115/115 _ 26.58 257 4 8498638 0.0 11.36 11.36 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 3-0 9034 0/108/108 _ 26.36 163 575647 8665753 0.0 10.94 10.94 162.158.187.114 http/1.1 3-0 9034 1/123/123 W 26.48 314 0 8565534 0.0 9.97 9.97 104.23.251.79 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756792483.67671203613281250000 3-0 9034 0/109/109 _ 26.62 78 600170 8446403 0.0 9.56 9.56 162.158.91.79 http/1.1 blackjason7.co:443 GET /product-category/others/gallery-dept/ HTTP/1.1 3-0 9034 0/108/108 _ 26.51 78 600118 8992004 0.0 8.49 8.49 162.158.91.79 http/1.1 3-0 9034 1/111/111 W 26.36 138 0 8906986 0.0 10.91 10.91 172.69.33.192 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 3-0 9034 1/108/108 W 26.45 49 0 8754872 0.0 12.57 12.57 172.70.108.239 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/03/20210616-i1623833580_5054_3.jpg 3-0 9034 0/106/106 _ 26.36 17 251284 10363391 0.0 9.76 9.76 162.158.186.113 http/1.1 3-0 9034 1/114/114 W 26.52 18 0 8043256 0.0 14.12 14.12 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 3-0 9034 1/109/109 W 26.48 157 0 9306247 0.0 8.85 8.85 172.70.214.79 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 3-0 9034 0/116/116 _ 26.62 136 3 7810650 0.0 13.17 13.17 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 3-0 9034 1/110/110 W 26.43 252 0 10752979 0.0 10.38 10.38 172.70.206.58 http/1.1 blackjason7.co:443 GET /apple-touch-icon.png HTTP/1.1 3-0 9034 0/111/111 _ 26.57 17 176638 7659621 0.0 9.43 9.43 162.158.91.99 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2018/12/IMG_9591-scaled.jpg HTTP/1.1 3-0 9034 1/119/119 W 26.47 343 0 10037692 0.0 8.99 8.99 162.158.187.153 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/05/20220320-a1647786715409_0223.jp 3-0 9034 1/95/95 W 26.36 579 0 6910283 0.0 9.68 9.68 172.70.143.33 http/1.1 blackjason7.co:443 GET /product/rhude-yachting-shorts-2/ HTTP/1.1 3-0 9034 1/103/103 W 26.45 355 0 9108335 0.0 9.15 9.15 162.158.187.97 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/06/20220619_i1655647955_4535_0.jpg 3-0 9034 1/103/103 W 26.23 198 0 9849657 0.0 11.69 11.69 172.69.33.192 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 3-0 9034 1/133/133 W 26.47 341 0 9616150 0.0 12.97 12.97 172.71.152.69 http/1.1 blackjason7.co:443 GET /product/represent-x-motley-crue%EF%B8%8F-without-you-hoodi 3-0 9034 0/115/115 _ 26.28 257 2 9806973 0.0 9.48 9.48 162.158.186.112 http/1.1 3-0 9034 0/114/114 _ 26.66 22 163 7563434 0.0 12.19 12.19 172.70.215.11 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2024/10/wsxc1729265821200_5.jpg HTTP/1. 3-0 9034 1/101/101 W 26.48 0 0 9056196 0.0 9.43 9.43 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 3-0 9034 0/113/113 _ 26.44 163 433553 9390944 0.0 10.08 10.08 172.70.214.78 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 3-0 9034 0/113/113 _ 26.59 168 15 8855696 0.0 13.26 13.26 185.242.226.80 http/1.1 104.160.22.87:80 GET / HTTP/1.1 4-0 9035 0/90/90 _ 22.61 38 600123 6399657 0.0 9.48 9.48 162.158.90.47 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756792159.58395409584045410156 4-0 9035 0/91/91 _ 22.46 431 136637 5167050 0.0 13.19 13.19 162.158.186.112 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 4-0 9035 0/89/89 _ 22.35 704 108 6693630 0.0 8.65 8.65 172.69.33.228 http/1.1 4-0 9035 0/92/92 _ 22.27 548 270799 7245638 0.0 8.00 8.00 104.23.251.187 http/1.1 4-0 9035 1/91/91 W 22.49 281 0 5528032 0.0 10.68 10.68 172.70.210.58 http/1.1 blackjason7.co:443 GET / HTTP/1.1 4-0 9035 0/77/77 _ 22.29 82 4 5872944 0.0 7.79 7.79 172.70.207.168 http/1.1 4-0 9035 1/94/94 W 22.50 48 0 6609487 0.0 8.16 8.16 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 4-0 9035 1/90/90 W 22.40 401 0 6307012 0.0 7.71 7.71 172.68.174.229 http/1.1 blackjason7.co:443 GET /product/chrome-hearts-floral-cross-ls-t-shirt/ HTTP/1.1 4-0 9035 0/89/89 _ 22.25 695 600134 5867390 0.0 9.57 9.57 162.158.167.150 http/1.1 4-0 9035 1/94/94 W 22.38 530 0 7575236 0.0 11.43 11.43 172.71.170.13 http/1.1 blackjason7.co:443 GET /new-arrivals/?product-page=65&add-to-cart=159372 HTTP/1.1 4-0 9035 1/82/82 W 22.46 393 0 5031142 0.0 9.75 9.75 172.68.174.229 http/1.1 blackjason7.co:443 GET / HTTP/1.1 4-0 9035 0/82/82 _ 22.54 436 1 4948393 0.0 8.93 8.93 172.70.206.109 http/1.1 blackjason7.co:443 GET /wp-content/plugins/rey-core/assets/css/woocommerce-header. 4-0 9035 1/93/93 W 22.49 92 0 6455022 0.0 7.60 7.60 162.158.179.197 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/08/1-100x100.jpg100w,https://black 4-0 9035 0/99/99 _ 22.53 549 4 5198908 0.0 8.96 8.96 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 4-0 9035 0/89/89 _ 22.52 613 195636 6225510 0.0 8.98 8.98 162.158.186.112 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 4-0 9035 0/96/96 _ 22.45 613 600138 7419440 0.0 10.30 10.30 162.158.186.112 http/1.1 4-0 9035 0/91/91 _ 22.56 296 3 6170501 0.0 7.81 7.81 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status HTTP/1.0 4-0 9035 1/100/100 W 22.41 108 0 6201814 0.0 8.54 8.54 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 4-0 9035 1/88/88 W 22.17 104 0 6796809 0.0 8.88 8.88 108.162.226.118 http/1.1 blackjason7.co:443 GET /product-tag/travis-scott/ HTTP/1.1 4-0 9035 0/97/97 _ 22.50 30 600165 7150155 0.0 9.79 9.79 172.71.167.25 http/1.1 4-0 9035 0/94/94 _ 22.61 30 600138 7933693 0.0 8.30 8.30 172.71.167.25 http/1.1 blackjason7.co:443 GET /product/ralph-lauren-classic-fit-performance-polo-shirt/ H 4-0 9035 0/90/90 _ 22.61 82 600104 6955671 0.0 10.14 10.14 172.70.207.168 http/1.1 blackjason7.co:443 GET / HTTP/1.1 4-0 9035 0/89/89 _ 22.50 695 600184 5566859 0.0 11.31 11.31 162.158.167.150 http/1.1 blackjason7.co:443 GET /product-category/others/vintage/ HTTP/1.1 4-0 9035 0/89/89 _ 22.43 38 126 4941531 0.0 9.56 9.56 162.158.90.47 http/1.1 4-0 9035 0/100/100 _ 22.38 431 82032 7074465 0.0 10.82 10.82 162.158.186.113 http/1.1 5-0 12449 1/117/117 W 23.86 102 0 7103865 0.0 11.34 11.34 172.71.214.244 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/08/1-100x100.jpg100w,https://black 5-0 12449 0/99/99 _ 23.85 293 600210 5604718 0.0 7.95 7.95 172.68.211.112 http/1.1 5-0 12449 0/99/99 _ 23.72 123 464136 6386456 0.0 10.06 10.06 162.158.108.65 http/1.1 5-0 12449 0/103/103 _ 23.86 216 36 5737868 0.0 10.02 10.02 162.158.187.150 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2024/10/wsxc1728744519142_0.jpg HTTP/1. 5-0 12449 1/90/90 W 23.68 252 0 5790970 0.0 8.46 8.46 104.23.251.177 http/1.1 blackjason7.co:443 GET /apple-touch-icon-precomposed.png HTTP/1.1 5-0 12449 0/102/102 _ 23.95 39 600142 6166650 0.0 8.97 8.97 162.158.187.78 http/1.1 blackjason7.co:443 POST /wp-cron.php?doing_wp_cron=1756792158.93992805480957031250 5-0 12449 0/93/93 _ 23.88 293 279057 6793984 0.0 10.27 10.27 172.68.211.112 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/05/20220311-a1647007368566_5578.jp 5-0 12449 1/94/94 W 23.62 552 0 7801727 0.0 9.06 9.06 172.70.38.235 http/1.1 blackjason7.co:443 GET /shop/page/5/?v=f1225cde6189&wmc-currency=EUR HTTP/1.1 5-0 12449 0/97/97 _ 23.87 295 287580 6479575 0.0 7.48 7.48 172.68.211.191 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2022/05/20220311-a1647007368566_5578.jp 5-0 12449 0/88/88 _ 23.86 80 440357 7000795 0.0 7.61 7.61 172.70.214.78 http/1.1 5-0 12449 0/110/110 _ 23.73 295 427249 7478664 0.0 11.64 11.64 172.68.211.191 http/1.1 5-0 12449 0/94/94 _ 23.95 80 600203 7291716 0.0 7.43 7.43 172.70.214.78 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 5-0 12449 1/98/98 W 23.85 178 0 7640738 0.0 9.12 9.12 172.70.210.200 http/1.1 blackjason7.co:443 GET /wp-content/uploads/2021/06/20210420-i1618853265_986_6.jpg. 5-0 12449 1/91/91 W 23.85 252 0 6565178 0.0 7.49 7.49 162.158.146.80 http/1.1 blackjason7.co:443 GET / HTTP/1.1 5-0 12449 1/90/90 W 23.68 168 0 6465552 0.0 8.42 8.42 172.69.33.193 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 5-0 12449 0/103/103 _ 23.94 84 600112 7267265 0.0 10.85 10.85 172.70.214.78 http/1.1 blackjason7.co:443 GET /favicon.ico HTTP/1.1 5-0 12449 0/115/115 _ 23.89 217 3 7686522 0.0 10.33 10.33 127.0.0.1 http/1.1 mark.safetohost.com:80 GET /whm-server-status/ HTTP/1.0 5-0 12449 0/99/99 _ 23.86 84 472166 6543695 0.0 8.32 8.32 172.70.214.78 http/1.1 5-0 12449 0/107/107 _ 23.88 267 3 6995659 0.0 9.85 9.85 127.0.0.1 http/1.1 mark.safetohost.com:80 GET / HTTP/1.0 5-0 12449 0/107/107 _ 23.85 267 600202 9148738 0.0 10.27 10.27 162.158.186.113 http/1.1 blackjason7.co:443 POST /wp-admin/admin-ajax.php HTTP/1.1 5-0 12449 0/97/97 _ 23.86 39 437309 5903696 0.0 9.83 9.83 162.158.187.78 http/1.1 5-0 12449 0/114/114 _ 23.85 296 600122 6542260 0.0 9.57 9.57 172.71.211.61 http/1.1 5-0 12449 0/100/100 _ 23.92 123 600126 9072747 0.0 8.85 8.85 162.158.108.65 http/1.1 blackjason7.co:443 GET /wp-login.php HTTP/1.1 5-0 12449 1/115/115 W 23.86 18 0 5716350 0.0 10.79 10.79 172.70.174.202 http/1.1 blackjason7.co:443 GET /product-category/others/enfants-riches-deprimes/ HTTP/1.1 5-0 12449 1/95/95 W 23.86 189 0 8193834 0.0 9.94 9.94 172.70.210.187 http/1.1 blackjason7.co:443 GET / HTTP/1.1
最新发布
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值