GithubHelp home page GithubHelp logo

donkeyid's People

Contributors

osgochina avatar shijunjun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

donkeyid's Issues

php7下报错

php版本 PHP 7.0.9
php -v
[1] 49550 segmentation fault php -v

have your system administrator add LIBDIR to `/etc/ld.so.conf'

`cp ./.libs/donkeyid.so /home/donkeyid-donkeyid-0.7/donkeyid/modules/donkeyid.so
cp ./.libs/donkeyid.lai /donkeyid-donkeyid-0.7/donkeyid/modules/donkeyid.la
; Local Variables:

PATH="$PATH:/sbin" ldconfig -n /home/donkeyid-donkeyid-0.7/donkeyid/modules

Libraries have been installed in:
; Local Variables:
/home/donkeyid-donkeyid-0.7/donkeyid/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:

  • add LIBDIR to the `LD_LIBRARY_PATH' environment variable
    during execution
  • add LIBDIR to the `LD_RUN_PATH' environment variable
    during linking
  • use the `-Wl,--rpath -Wl,LIBDIR' linker flag
  • have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.`

我已经在/etc/ld.so.conf加上了路径,make clean之后,重新编译还是错误,但是可以生成so文件,加入到php.ini中,提示“段错误”

1.0版本稳定了吗

嗨,您好。现在需要一个高性能的id生成器,碰巧看到了你的donkeyid。但是我在release里没有看到1.0版本,请问1.0版本稳定了吗?

Mac OS下编译报错

头文件malloc.h在MacOS的路径为sys/malloc.h,建议加上对系统的判定

感觉文档是不是错误了。

snowflake 算法最高位不用,所以毫秒计时器用了41个bit,所以最多是2^42 -1,就相当于139年,如果你是用了42个bit的话,那么应该是2^43 -1。就相当于278年了。

望提供依据时间生成ID的接口.

在实际运用中.老系统想要迁移到此ID方案时,需要一个依据数据原有时间生成ID的接口.

因为我在设计数据库时,利用新ID的特点,我会省一个数据创建时间字段.因为ID中可以取到.
所以在老系统迁移时就需要一个这样的接口.从时间来获得唯一ID.这样以迁移后,我就能从ID中获得该数据的生成时间.

通过ini_set方法设置node_id无效

测试了下 donkeyid 发现 ini_set 设置 node_id 无效啊,帮忙看看,这块因为现在要用到微服务中,希望提供下能动态修改node_id 的方法,这样更方便于使用。

public function http_donkeyid() {
ini_set('donkeyid.node_id',3);
$donkeyid = dk_get_ts_id();
$multi = $this->http_input->get('multi');
if(!empty($multi) && intval($multi) > 0) {
$donkeyid = dk_get_ts_ids($multi);
}
$tsid = dk_get_ts_id();
$donkeyid['tsid'] = $tsid;
$dtid = dk_get_dt_id();
$donkeyid['dtid'] = $dtid;
$donkeyid['dk_parse_ts_id'] = dk_parse_ts_id($tsid);
$donkeyid['iniget'] = ini_get('donkeyid.node_id');
$this->http_output->end($donkeyid);
}

返回结果

{
"0": "149408895300000070",
"1": "149408895300000080",
"2": "149408895300000090",
"3": "149408895300000100",
"4": "149408895300000110",
"5": "149408895300000120",
"6": "149408895300000130",
"7": "149408895300000140",
"8": "149408895300000150",
"9": "149408895300000160",
"tsid": "149408895300000170",
"dtid": "2017050616423334900000001",
"dk_parse_ts_id": {
"time\u0000": "1494088953",
"node_id\u0000": 0,
"sequence\u0000": 17
},
"iniget": "0"
}

不支持php8

在make时出错
[root@DESKTOP-RN8D2NJ donkeyid]# make /bin/sh /root/donkeyid/libtool --mode=compile cc -I. -I/root/donkeyid -I/root/donkeyid/include -I/root/donkeyid/main -I/root/donkeyid -I/opt/remi/php80/root/usr/include/php -I/opt/remi/php80/root/usr/include/php/main -I/opt/remi/php80/root/usr/include/php/TSRM -I/opt/remi/php80/root/usr/include/php/Zend -I/opt/remi/php80/root/usr/include/php/ext -I/opt/remi/php80/root/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/donkeyid/donkeyid.c -o donkeyid.lo libtool: compile: cc -I. -I/root/donkeyid -I/root/donkeyid/include -I/root/donkeyid/main -I/root/donkeyid -I/opt/remi/php80/root/usr/include/php -I/opt/remi/php80/root/usr/include/php/main -I/opt/remi/php80/root/usr/include/php/TSRM -I/opt/remi/php80/root/usr/include/php/Zend -I/opt/remi/php80/root/usr/include/php/ext -I/opt/remi/php80/root/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /root/donkeyid/donkeyid.c -fPIC -DPIC -o .libs/donkeyid.o In file included from /root/donkeyid/donkeyid.c:29: /root/donkeyid/php_wrapper.h: In function ‘dk_zend_read_property’: /root/donkeyid/php_wrapper.h:28:37: warning: passing argument 2 of ‘zend_read_property’ from incompatible pointer type -Wincompatible-pointer-types] return zend_read_property(scope,object,name,name_length,silent,&rv); ^~~~~~ In file included from /opt/remi/php80/root/usr/include/php/main/php.h:35, from /root/donkeyid/donkeyid.c:25: /opt/remi/php80/root/usr/include/php/Zend/zend_API.h:404:16: note: expected ‘zend_object *’ {aka ‘struct _zend_object *’} but argument is of type ‘zval *’ {aka ‘struct _zval_struct *’} ZEND_API zval *zend_read_property(zend_class_entry *scope, zend_object *object, const char *name, size_t name_length, zend_bool silent, zval *rv); ^~~~~~~~~~~~~~~~~~ /root/donkeyid/donkeyid.c: In function ‘zif_dk_get_next_ids’: /root/donkeyid/donkeyid.c:233:46: error: expected ‘)’ before ‘TSRMLS_CC’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "l|s",&num, &val, &val_len) == FAILURE) { ^~~~~~~~~ /root/donkeyid/donkeyid.c:233:9: error: too few arguments to function ‘zend_parse_parameters’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "l|s",&num, &val, &val_len) == FAILURE) { ^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/remi/php80/root/usr/include/php/main/php.h:35, from /root/donkeyid/donkeyid.c:25: /opt/remi/php80/root/usr/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~ /root/donkeyid/donkeyid.c: In function ‘zif_dk_get_ts_ids’: /root/donkeyid/donkeyid.c:275:46: error: expected ‘)’ before ‘TSRMLS_CC’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "l|s",&num, &val, &val_len) == FAILURE) { ^~~~~~~~~ /root/donkeyid/donkeyid.c:275:9: error: too few arguments to function ‘zend_parse_parameters’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "l|s",&num, &val, &val_len) == FAILURE) { ^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/remi/php80/root/usr/include/php/main/php.h:35, from /root/donkeyid/donkeyid.c:25: /opt/remi/php80/root/usr/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~ /root/donkeyid/donkeyid.c: In function ‘zif_dk_parse_ts_id’: /root/donkeyid/donkeyid.c:315:46: error: expected ‘)’ before ‘TSRMLS_CC’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "s", &val, &val_len) == FAILURE) { ^~~~~~~~~ /root/donkeyid/donkeyid.c:315:9: error: too few arguments to function ‘zend_parse_parameters’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "s", &val, &val_len) == FAILURE) { ^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/remi/php80/root/usr/include/php/main/php.h:35, from /root/donkeyid/donkeyid.c:25: /opt/remi/php80/root/usr/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~ /root/donkeyid/donkeyid.c: In function ‘zif_dk_parse_id’: /root/donkeyid/donkeyid.c:343:46: error: expected ‘)’ before ‘TSRMLS_CC’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "s", &val, &val_len) == FAILURE) { ^~~~~~~~~ /root/donkeyid/donkeyid.c:343:9: error: too few arguments to function ‘zend_parse_parameters’ if (zend_parse_parameters(ZEND_NUM_ARGS()TSRMLS_CC, "s", &val, &val_len) == FAILURE) { ^~~~~~~~~~~~~~~~~~~~~ In file included from /opt/remi/php80/root/usr/include/php/main/php.h:35, from /root/donkeyid/donkeyid.c:25: /opt/remi/php80/root/usr/include/php/Zend/zend_API.h:304:22: note: declared here ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec, ...); ^~~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:208: donkeyid.lo] Error 1

ubuntu 编译成功添加扩展后出现错误

PHP Warning:  PHP Startup: donkeyid: Unable to initialize module
Module compiled with module API=20131226
PHP    compiled with module API=20151012
These options need to match
 in Unknown on line 0
Warning: PHP Startup: donkeyid: Unable to initialize module

编译成功后, 追加 extension 后, 出现上述错误信息.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.