2025-04-14

Qoueries  所有Query的数
Threads connected  已连接的线程
Threads running  正在运行的线程

$ mysqladmin ext -i1 | awk '/Qoueries/{q=$4-qp;qp=$4} /Threads_connected/{tc=$4} /Threads_running/{printf "%5d %5d %5d\n", q,tc, $4}'
标签: mysql
2025-04-14
mysql> create table mytable like oritable;   #将原表复制一份成新表mytable
mysql> alter table mytable engine=InnoDB;  #将新表的引擎修改成innodb
mysql> inset into mytable select * from oritable  #将原数据插入到新表中

当数据量大的j时候可以增加事物回滚.

START TRANSACTION;
mysql> inset into mytable select * from oritable  #将原数据插入到新表中
COMMIT;
标签: mysql
2024-05-07

ECA模块全名(事件 - 条件 - 行动)有点像Rules。 但是他更强大。只需要拖拖拽拽就可以完成。 

这边主要介绍一下 ECA+BPMN.iO模块. 

ECA

  1. 图中可以添加事件. 由事件启动.
  2. 引线是条件。
  3. 圆角正方型是要做的事。也就是行动

 

像上面的图是,当执行cron的时候。 切换到管理员(由于cron是匿名用户执行的).   获取views查询数据,这里做了一个活动报名的view. 将对即将要开始的活动提前一天对所有报名的用户发送邮件。 views只是用来查出所有需要发送邮件的用户. 获取到数据以后将数据保存成变量。后面循环执行下面那一个新的自定义事件. 发送邮件.

 

这里有更详细的视频介绍:https://www.youtube.com/watch?v=foL8V6MCXrM

eca.tar
标签: ECA Drupal
2024-04-09
  1. 先导出配置
  2. 找到导出的配置文件field_ui.settings.yml
  3. 修改配置文件后再导入
_core:
  default_config_hash: Q1nMi90W6YQxKzZAgJQw7Ag9U4JrsEUwkomF0lhvbIM
langcode: zh-hans
field_prefix: field_

修改为

_core:
  default_config_hash: Q1nMi90W6YQxKzZAgJQw7Ag9U4JrsEUwkomF0lhvbIM
langcode: zh-hans
field_prefix: ''

 

标签: Drupal
2024-04-01

服务器需要安装: rsyslog

启用drupal核心模块:syslog

在这里配置admin/config/development/logging日志前缀. 一般选择默认的就行, 如果有多个站点。可以第一个站点选择local0, 第二站点选择local1

LOG_LOCAL0
LOG_LOCAL1
LOG_LOCAL2
LOG_LOCAL3
LOG_LOCAL4
LOG_LOCAL5
LOG_LOCAL6
LOG_LOCAL7

配置rsyslog

vim /etc/rsyslog.d/50-default.conf

添加行:

local0.* /var/log/drupal.log

 

这里的local0和你上面的选择有关系. 

 

重新启动rsyslog服务

service rsyslog restart

 

禁用db log模块

测试

1. 打开一个404页面

2. \Drupal::logger('debug_test')->notice('hello world');

 

标签: Drupal
2024-03-31

实现效果为:

*.docker/ 解析到127.0.0.1

方便映射到对应的开发目录比如:

drupal9.docker/  映射到  /User/you/www/drupal9

drupal10.docker/  映射到  /User/you/www/drupal10

 

$ brew install dnsmasq
$ cd $(brew --prefix); echo 'address=/.docker/127.0.0.1' > etc/dnsmasq.conf
$ sudo cp -v $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons
$ sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
$ sudo mkdir /etc/resolver
$ sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'

 

 

标签: Bash
2024-01-17

在定义Entity的handlers中自定义views_data

*   handlers = {
*     "views_data" = "Drupal\mymodule\Entity\MymoduleViewsData",

创建MymoduleViewsData字段

<?php

namespace Drupal\mymodule\Entity;

use Drupal\views\EntityViewsData;

class MymoduleViewsData extends EntityViewsData {

  /**
   * {@inheritdoc}
   */
  public function getViewsData() {
    $data = parent::getViewsData();
    $data['my_entity_type']['my_field'] = [
      'title' => $this->t('test field'),
      'help' => $this->t('test field'),
      'field' => [
        'id' => 'field_id',
      ],
    ];
    return $data;
  }

}

如果是已存在Entity可以这样

/**
 * Implements hook_views_data().
 */
function mymodule_views_data() {
  $data['my_entity_type']['my_field'] = [
      'title' => $this->t('test field'),
      'help' => $this->t('test field'),
      'field' => [
        'id' => 'field_id',
      ],
  ];

  return $data;
}

 

在模块src/Plugin/views/field下面创建文件MyField.php

<?php

namespace Drupal\my_module\Plugin\views\field;

use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;

// 这里的field_id和上面的field_id对应
/**
 * @ViewsField("field_id")
 */
class MyField extends FieldPluginBase {

  /**
   * {@inheritdoc}
   */
  public function query() {}

  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values) {
    // 自定义输出.
    $entity = $this->getEntity($values);
    return $entity->label();
  }

}


 

标签: Drupal Views
2023-06-27

由于上次写的Entity扩展改起来比较复杂。并且也不是太好用。所以这次提供了一个简单的模块来实现这个功能,已经上传到Drupal.org
https://www.drupal.org/project/entity_expand

标签: Drupal Entity
2023-06-16

在很多时候比如写抓取API代码。一般像这种是通过cron去跑. 而cron一般是匿名用户. 如果直接用admin方式来测试可能会有很多的Bug. 就比如profile一般都需要加accessCheck(false).  所以在写类似代码的时候一定要加上这段方便测试

 

$switcher = \Drupal::service('account_switcher');
$switcher->switchTo(new \Drupal\Core\Session\AnonymousUserSession());

// 你的逻辑代码

// 结尾加上这句回到当前登陆用户.
$switcher->switchBack();

 

标签: Drupal
2023-05-12
当我们想用后台跑一个命令的时候可能经常是这样使用的
$ drush mycommand &


这个命令只是在后台跑。当我们关掉ssh了以后,此进程就没有了. 随后了解到了nohup。 他还会生成一个.out的日志文件

使用方法
$nohup drush mycommand &

 

标签: Linux